@@ -6,13 +6,12 @@ define <4 x i32> @bitselect_splat_first_zero_and_icmp(<4 x i32> %input) {
6
6
; CHECK-LABEL: bitselect_splat_first_zero_and_icmp:
7
7
; CHECK: .functype bitselect_splat_first_zero_and_icmp (v128) -> (v128)
8
8
; CHECK-NEXT: # %bb.0: # %start
9
- ; CHECK-NEXT: v128.const $push5=, 0, 0, 0, 0
10
- ; CHECK-NEXT: local.tee $push4=, $1=, $pop5
11
9
; CHECK-NEXT: v128.const $push0=, 2139095040, 2139095040, 2139095040, 2139095040
12
10
; CHECK-NEXT: v128.and $push1=, $0, $pop0
13
- ; CHECK-NEXT: i32x4.eq $push2=, $1, $pop1
14
- ; CHECK-NEXT: v128.bitselect $push3=, $pop4, $0, $pop2
15
- ; CHECK-NEXT: return $pop3
11
+ ; CHECK-NEXT: v128.const $push2=, 0, 0, 0, 0
12
+ ; CHECK-NEXT: i32x4.ne $push3=, $pop1, $pop2
13
+ ; CHECK-NEXT: v128.and $push4=, $pop3, $0
14
+ ; CHECK-NEXT: return $pop4
16
15
start:
17
16
%0 = and <4 x i32 > %input , splat (i32 2139095040 )
18
17
%1 = icmp eq <4 x i32 > %0 , zeroinitializer
@@ -25,13 +24,12 @@ define <4 x i32> @bitselect_splat_second_zero_and_icmp(<4 x i32> %input) {
25
24
; CHECK-LABEL: bitselect_splat_second_zero_and_icmp:
26
25
; CHECK: .functype bitselect_splat_second_zero_and_icmp (v128) -> (v128)
27
26
; CHECK-NEXT: # %bb.0: # %start
28
- ; CHECK-NEXT: v128.const $push5=, 0, 0, 0, 0
29
- ; CHECK-NEXT: local.tee $push4=, $1=, $pop5
30
27
; CHECK-NEXT: v128.const $push0=, 2139095040, 2139095040, 2139095040, 2139095040
31
28
; CHECK-NEXT: v128.and $push1=, $0, $pop0
32
- ; CHECK-NEXT: i32x4.eq $push2=, $1, $pop1
33
- ; CHECK-NEXT: v128.bitselect $push3=, $0, $pop4, $pop2
34
- ; CHECK-NEXT: return $pop3
29
+ ; CHECK-NEXT: v128.const $push2=, 0, 0, 0, 0
30
+ ; CHECK-NEXT: i32x4.eq $push3=, $pop1, $pop2
31
+ ; CHECK-NEXT: v128.and $push4=, $pop3, $0
32
+ ; CHECK-NEXT: return $pop4
35
33
start:
36
34
%0 = and <4 x i32 > %input , splat (i32 2139095040 )
37
35
%1 = icmp eq <4 x i32 > %0 , zeroinitializer
@@ -60,13 +58,12 @@ define <4 x i32> @bitselect_splat_second_zero_cond_input(<4 x i1> %cond, <4 x i3
60
58
; CHECK-LABEL: bitselect_splat_second_zero_cond_input:
61
59
; CHECK: .functype bitselect_splat_second_zero_cond_input (v128, v128) -> (v128)
62
60
; CHECK-NEXT: # %bb.0: # %start
63
- ; CHECK-NEXT: v128.const $push3=, 0, 0, 0, 0
64
61
; CHECK-NEXT: i32.const $push0=, 31
65
62
; CHECK-NEXT: i32x4.shl $push1=, $0, $pop0
66
- ; CHECK-NEXT: i32.const $push5 =, 31
67
- ; CHECK-NEXT: i32x4.shr_s $push2=, $pop1, $pop5
68
- ; CHECK-NEXT: v128.bitselect $push4 =, $1 , $pop3, $pop2
69
- ; CHECK-NEXT: return $pop4
63
+ ; CHECK-NEXT: i32.const $push4 =, 31
64
+ ; CHECK-NEXT: i32x4.shr_s $push2=, $pop1, $pop4
65
+ ; CHECK-NEXT: v128.and $push3 =, $pop2 , $1
66
+ ; CHECK-NEXT: return $pop3
70
67
start:
71
68
%2 = select <4 x i1 > %cond , <4 x i32 > %input , <4 x i32 > zeroinitializer
72
69
ret <4 x i32 > %2
0 commit comments