@@ -6,18 +6,8 @@ define i1 @reduce_and_to_all_true_16i8(<16 x i8> %0) {
6
6
; CHECK-LABEL: reduce_and_to_all_true_16i8:
7
7
; CHECK: .functype reduce_and_to_all_true_16i8 (v128) -> (i32)
8
8
; CHECK-NEXT: # %bb.0:
9
- ; CHECK-NEXT: v128.const $push0=, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
10
- ; CHECK-NEXT: i8x16.ne $push10=, $0, $pop0
11
- ; CHECK-NEXT: local.tee $push9=, $0=, $pop10
12
- ; CHECK-NEXT: i8x16.shuffle $push1=, $0, $0, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 0, 1, 2, 3
13
- ; CHECK-NEXT: v128.and $push8=, $pop9, $pop1
14
- ; CHECK-NEXT: local.tee $push7=, $0=, $pop8
15
- ; CHECK-NEXT: i8x16.shuffle $push2=, $0, $0, 4, 5, 6, 7, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3
16
- ; CHECK-NEXT: v128.and $push3=, $pop7, $pop2
17
- ; CHECK-NEXT: i32x4.extract_lane $push4=, $pop3, 0
18
- ; CHECK-NEXT: i32.const $push5=, 0
19
- ; CHECK-NEXT: i32.ne $push6=, $pop4, $pop5
20
- ; CHECK-NEXT: return $pop6
9
+ ; CHECK-NEXT: i8x16.all_true $push0=, $0
10
+ ; CHECK-NEXT: return $pop0
21
11
%2 = icmp ne <16 x i8 > %0 , zeroinitializer
22
12
%3 = sext <16 x i1 > %2 to <16 x i8 >
23
13
%4 = bitcast <16 x i8 > %3 to <4 x i32 >
@@ -31,18 +21,8 @@ define i1 @reduce_and_to_all_true_4i32(<4 x i32> %0) {
31
21
; CHECK-LABEL: reduce_and_to_all_true_4i32:
32
22
; CHECK: .functype reduce_and_to_all_true_4i32 (v128) -> (i32)
33
23
; CHECK-NEXT: # %bb.0:
34
- ; CHECK-NEXT: v128.const $push0=, 0, 0, 0, 0
35
- ; CHECK-NEXT: i32x4.ne $push10=, $0, $pop0
36
- ; CHECK-NEXT: local.tee $push9=, $0=, $pop10
37
- ; CHECK-NEXT: i8x16.shuffle $push1=, $0, $0, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 0, 1, 2, 3
38
- ; CHECK-NEXT: v128.and $push8=, $pop9, $pop1
39
- ; CHECK-NEXT: local.tee $push7=, $0=, $pop8
40
- ; CHECK-NEXT: i8x16.shuffle $push2=, $0, $0, 4, 5, 6, 7, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3
41
- ; CHECK-NEXT: v128.and $push3=, $pop7, $pop2
42
- ; CHECK-NEXT: i32x4.extract_lane $push4=, $pop3, 0
43
- ; CHECK-NEXT: i32.const $push5=, 0
44
- ; CHECK-NEXT: i32.ne $push6=, $pop4, $pop5
45
- ; CHECK-NEXT: return $pop6
24
+ ; CHECK-NEXT: i32x4.all_true $push0=, $0
25
+ ; CHECK-NEXT: return $pop0
46
26
%2 = icmp ne <4 x i32 > %0 , zeroinitializer
47
27
%3 = sext <4 x i1 > %2 to <4 x i32 >
48
28
%4 = tail call i32 @llvm.vector.reduce.and.v4i32 (<4 x i32 > %3 )
@@ -56,18 +36,8 @@ define i1 @reduce_and_to_all_true_2i64(<2 x i64> %0) {
56
36
; CHECK-LABEL: reduce_and_to_all_true_2i64:
57
37
; CHECK: .functype reduce_and_to_all_true_2i64 (v128) -> (i32)
58
38
; CHECK-NEXT: # %bb.0:
59
- ; CHECK-NEXT: v128.const $push0=, 0, 0, 0, 0
60
- ; CHECK-NEXT: i32x4.ne $push10=, $0, $pop0
61
- ; CHECK-NEXT: local.tee $push9=, $0=, $pop10
62
- ; CHECK-NEXT: i8x16.shuffle $push1=, $0, $0, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 0, 1, 2, 3
63
- ; CHECK-NEXT: v128.and $push8=, $pop9, $pop1
64
- ; CHECK-NEXT: local.tee $push7=, $0=, $pop8
65
- ; CHECK-NEXT: i8x16.shuffle $push2=, $0, $0, 4, 5, 6, 7, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3
66
- ; CHECK-NEXT: v128.and $push3=, $pop7, $pop2
67
- ; CHECK-NEXT: i32x4.extract_lane $push4=, $pop3, 0
68
- ; CHECK-NEXT: i32.const $push5=, 0
69
- ; CHECK-NEXT: i32.ne $push6=, $pop4, $pop5
70
- ; CHECK-NEXT: return $pop6
39
+ ; CHECK-NEXT: i32x4.all_true $push0=, $0
40
+ ; CHECK-NEXT: return $pop0
71
41
%2 = bitcast <2 x i64 > %0 to <4 x i32 >
72
42
%3 = icmp ne <4 x i32 > %2 , zeroinitializer
73
43
%4 = sext <4 x i1 > %3 to <4 x i32 >
0 commit comments