@@ -14,16 +14,6 @@ define i64 @test_smin_neg_one(i64 %a) {
14
14
ret i64 %retval.0
15
15
}
16
16
17
- define i64 @test_smin_zero (i64 %a ) {
18
- ; CHECK-LABEL: test_smin_zero:
19
- ; CHECK: // %bb.0:
20
- ; CHECK-NEXT: and x0, x0, x0, asr #63
21
- ; CHECK-NEXT: ret
22
- %1 = tail call i64 @llvm.smin.i64 (i64 %a , i64 0 )
23
- %retval.0 = xor i64 %1 , 0
24
- ret i64 %retval.0
25
- }
26
-
27
17
define i64 @test_smin_constant (i64 %a ) {
28
18
; CHECK-LABEL: test_smin_constant:
29
19
; CHECK: // %bb.0:
@@ -37,7 +27,6 @@ define i64 @test_smin_constant(i64 %a) {
37
27
}
38
28
39
29
; Test for DAGCombiner optimization: fold (xor (smax(x, C), C)) -> select (x > C), xor (x, C), 0
40
-
41
30
define i64 @test_smax_neg_one (i64 %a ) {
42
31
; CHECK-LABEL: test_smax_neg_one:
43
32
; CHECK: // %bb.0:
@@ -49,16 +38,6 @@ define i64 @test_smax_neg_one(i64 %a) {
49
38
ret i64 %retval.0
50
39
}
51
40
52
- define i64 @test_smax_zero (i64 %a ) {
53
- ; CHECK-LABEL: test_smax_zero:
54
- ; CHECK: // %bb.0:
55
- ; CHECK-NEXT: bic x0, x0, x0, asr #63
56
- ; CHECK-NEXT: ret
57
- %1 = tail call i64 @llvm.smax.i64 (i64 %a , i64 0 )
58
- %retval.0 = xor i64 %1 , 0
59
- ret i64 %retval.0
60
- }
61
-
62
41
define i64 @test_smax_constant (i64 %a ) {
63
42
; CHECK-LABEL: test_smax_constant:
64
43
; CHECK: // %bb.0:
@@ -81,16 +60,6 @@ define i64 @test_umin_neg_one(i64 %a) {
81
60
ret i64 %retval.0
82
61
}
83
62
84
- define i64 @test_umin_zero (i64 %a ) {
85
- ; CHECK-LABEL: test_umin_zero:
86
- ; CHECK: // %bb.0:
87
- ; CHECK-NEXT: mov x0, xzr
88
- ; CHECK-NEXT: ret
89
- %1 = tail call i64 @llvm.umin.i64 (i64 %a , i64 0 )
90
- %retval.0 = xor i64 %1 , 0
91
- ret i64 %retval.0
92
- }
93
-
94
63
define i64 @test_umin_constant (i64 %a ) {
95
64
; CHECK-LABEL: test_umin_constant:
96
65
; CHECK: // %bb.0:
@@ -113,15 +82,6 @@ define i64 @test_umax_neg_one(i64 %a) {
113
82
ret i64 %retval.0
114
83
}
115
84
116
- define i64 @test_umax_zero (i64 %a ) {
117
- ; CHECK-LABEL: test_umax_zero:
118
- ; CHECK: // %bb.0:
119
- ; CHECK-NEXT: ret
120
- %1 = tail call i64 @llvm.umax.i64 (i64 %a , i64 0 )
121
- %retval.0 = xor i64 %1 , 0
122
- ret i64 %retval.0
123
- }
124
-
125
85
define i64 @test_umax_constant (i64 %a ) {
126
86
; CHECK-LABEL: test_umax_constant:
127
87
; CHECK: // %bb.0:
@@ -135,7 +95,6 @@ define i64 @test_umax_constant(i64 %a) {
135
95
}
136
96
137
97
; Test vector cases
138
-
139
98
define <4 x i32 > @test_smin_vector_neg_one (<4 x i32 > %a ) {
140
99
; CHECK-LABEL: test_smin_vector_neg_one:
141
100
; CHECK: // %bb.0:
@@ -148,17 +107,6 @@ define <4 x i32> @test_smin_vector_neg_one(<4 x i32> %a) {
148
107
ret <4 x i32 > %retval.0
149
108
}
150
109
151
- define <4 x i32 > @test_smin_vector_zero (<4 x i32 > %a ) {
152
- ; CHECK-LABEL: test_smin_vector_zero:
153
- ; CHECK: // %bb.0:
154
- ; CHECK-NEXT: movi v1.2d, #0000000000000000
155
- ; CHECK-NEXT: smin v0.4s, v0.4s, v1.4s
156
- ; CHECK-NEXT: ret
157
- %1 = tail call <4 x i32 > @llvm.smin.v4i32 (<4 x i32 > %a , <4 x i32 > <i32 0 , i32 0 , i32 0 , i32 0 >)
158
- %retval.0 = xor <4 x i32 > %1 , <i32 0 , i32 0 , i32 0 , i32 0 >
159
- ret <4 x i32 > %retval.0
160
- }
161
-
162
110
define <4 x i32 > @test_smin_vector_constant (<4 x i32 > %a ) {
163
111
; CHECK-LABEL: test_smin_vector_constant:
164
112
; CHECK: // %bb.0:
@@ -182,17 +130,6 @@ define <4 x i32> @test_smax_vector_neg_one(<4 x i32> %a) {
182
130
ret <4 x i32 > %retval.0
183
131
}
184
132
185
- define <4 x i32 > @test_smax_vector_zero (<4 x i32 > %a ) {
186
- ; CHECK-LABEL: test_smax_vector_zero:
187
- ; CHECK: // %bb.0:
188
- ; CHECK-NEXT: movi v1.2d, #0000000000000000
189
- ; CHECK-NEXT: smax v0.4s, v0.4s, v1.4s
190
- ; CHECK-NEXT: ret
191
- %1 = tail call <4 x i32 > @llvm.smax.v4i32 (<4 x i32 > %a , <4 x i32 > <i32 0 , i32 0 , i32 0 , i32 0 >)
192
- %retval.0 = xor <4 x i32 > %1 , <i32 0 , i32 0 , i32 0 , i32 0 >
193
- ret <4 x i32 > %retval.0
194
- }
195
-
196
133
define <4 x i32 > @test_smax_vector_constant (<4 x i32 > %a ) {
197
134
; CHECK-LABEL: test_smax_vector_constant:
198
135
; CHECK: // %bb.0:
@@ -215,16 +152,6 @@ define <4 x i32> @test_umin_vector_neg_one(<4 x i32> %a) {
215
152
ret <4 x i32 > %retval.0
216
153
}
217
154
218
- define <4 x i32 > @test_umin_vector_zero (<4 x i32 > %a ) {
219
- ; CHECK-LABEL: test_umin_vector_zero:
220
- ; CHECK: // %bb.0:
221
- ; CHECK-NEXT: movi v0.2d, #0000000000000000
222
- ; CHECK-NEXT: ret
223
- %1 = tail call <4 x i32 > @llvm.umin.v4i32 (<4 x i32 > %a , <4 x i32 > <i32 0 , i32 0 , i32 0 , i32 0 >)
224
- %retval.0 = xor <4 x i32 > %1 , <i32 0 , i32 0 , i32 0 , i32 0 >
225
- ret <4 x i32 > %retval.0
226
- }
227
-
228
155
define <4 x i32 > @test_umin_vector_constant (<4 x i32 > %a ) {
229
156
; CHECK-LABEL: test_umin_vector_constant:
230
157
; CHECK: // %bb.0:
@@ -247,15 +174,6 @@ define <4 x i32> @test_umax_vector_neg_one(<4 x i32> %a) {
247
174
ret <4 x i32 > %retval.0
248
175
}
249
176
250
- define <4 x i32 > @test_umax_vector_zero (<4 x i32 > %a ) {
251
- ; CHECK-LABEL: test_umax_vector_zero:
252
- ; CHECK: // %bb.0:
253
- ; CHECK-NEXT: ret
254
- %1 = tail call <4 x i32 > @llvm.umax.v4i32 (<4 x i32 > %a , <4 x i32 > <i32 0 , i32 0 , i32 0 , i32 0 >)
255
- %retval.0 = xor <4 x i32 > %1 , <i32 0 , i32 0 , i32 0 , i32 0 >
256
- ret <4 x i32 > %retval.0
257
- }
258
-
259
177
define <4 x i32 > @test_umax_vector_constant (<4 x i32 > %a ) {
260
178
; CHECK-LABEL: test_umax_vector_constant:
261
179
; CHECK: // %bb.0:
0 commit comments