@@ -6,13 +6,12 @@ define <4 x i32> @bitselect_splat_first_zero_and_icmp(<4 x i32> %input) {
66; CHECK-LABEL: bitselect_splat_first_zero_and_icmp:
77; CHECK: .functype bitselect_splat_first_zero_and_icmp (v128) -> (v128)
88; CHECK-NEXT: # %bb.0: # %start
9- ; CHECK-NEXT: v128.const $push5=, 0, 0, 0, 0
10- ; CHECK-NEXT: local.tee $push4=, $1=, $pop5
119; CHECK-NEXT: v128.const $push0=, 2139095040, 2139095040, 2139095040, 2139095040
1210; 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
1615start:
1716 %0 = and <4 x i32 > %input , splat (i32 2139095040 )
1817 %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) {
2524; CHECK-LABEL: bitselect_splat_second_zero_and_icmp:
2625; CHECK: .functype bitselect_splat_second_zero_and_icmp (v128) -> (v128)
2726; CHECK-NEXT: # %bb.0: # %start
28- ; CHECK-NEXT: v128.const $push5=, 0, 0, 0, 0
29- ; CHECK-NEXT: local.tee $push4=, $1=, $pop5
3027; CHECK-NEXT: v128.const $push0=, 2139095040, 2139095040, 2139095040, 2139095040
3128; 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
3533start:
3634 %0 = and <4 x i32 > %input , splat (i32 2139095040 )
3735 %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
6058; CHECK-LABEL: bitselect_splat_second_zero_cond_input:
6159; CHECK: .functype bitselect_splat_second_zero_cond_input (v128, v128) -> (v128)
6260; CHECK-NEXT: # %bb.0: # %start
63- ; CHECK-NEXT: v128.const $push3=, 0, 0, 0, 0
6461; CHECK-NEXT: i32.const $push0=, 31
6562; 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
7067start:
7168 %2 = select <4 x i1 > %cond , <4 x i32 > %input , <4 x i32 > zeroinitializer
7269 ret <4 x i32 > %2
0 commit comments