@@ -2221,11 +2221,10 @@ define <4 x i64> @test_masked_z_8xi64_to_4xi64_perm_mask6(<8 x i64> %vec, <4 x i
2221
2221
define <4 x i64 > @test_masked_8xi64_to_4xi64_perm_mask7 (<8 x i64 > %vec , <4 x i64 > %vec2 , <4 x i64 > %mask ) {
2222
2222
; CHECK-LABEL: test_masked_8xi64_to_4xi64_perm_mask7:
2223
2223
; CHECK: # %bb.0:
2224
- ; CHECK-NEXT: vextracti32x4 $2, %zmm0, %xmm3
2225
- ; CHECK-NEXT: vpmovsxbq {{.*#+}} ymm4 = [2,0,3,4]
2226
- ; CHECK-NEXT: vpermi2q %ymm3, %ymm0, %ymm4
2224
+ ; CHECK-NEXT: vpmovsxbq {{.*#+}} ymm3 = [2,0,3,4]
2225
+ ; CHECK-NEXT: vpermq %zmm0, %zmm3, %zmm0
2227
2226
; CHECK-NEXT: vptestnmq %ymm2, %ymm2, %k1
2228
- ; CHECK-NEXT: vpblendmq %ymm4 , %ymm1, %ymm0 {%k1}
2227
+ ; CHECK-NEXT: vpblendmq %ymm0 , %ymm1, %ymm0 {%k1}
2229
2228
; CHECK-NEXT: retq
2230
2229
%shuf = shufflevector <8 x i64 > %vec , <8 x i64 > undef , <4 x i32 > <i32 2 , i32 0 , i32 3 , i32 4 >
2231
2230
%cmp = icmp eq <4 x i64 > %mask , zeroinitializer
@@ -2235,10 +2234,9 @@ define <4 x i64> @test_masked_8xi64_to_4xi64_perm_mask7(<8 x i64> %vec, <4 x i64
2235
2234
define <4 x i64 > @test_masked_z_8xi64_to_4xi64_perm_mask7 (<8 x i64 > %vec , <4 x i64 > %mask ) {
2236
2235
; CHECK-LABEL: test_masked_z_8xi64_to_4xi64_perm_mask7:
2237
2236
; CHECK: # %bb.0:
2238
- ; CHECK-NEXT: vextracti32x4 $2, %zmm0, %xmm2
2239
- ; CHECK-NEXT: vpmovsxbq {{.*#+}} ymm3 = [2,0,3,4]
2237
+ ; CHECK-NEXT: vpmovsxbq {{.*#+}} ymm2 = [2,0,3,4]
2240
2238
; CHECK-NEXT: vptestnmq %ymm1, %ymm1, %k1
2241
- ; CHECK-NEXT: vpermt2q %ymm2 , %ymm3 , %ymm0 {%k1} {z}
2239
+ ; CHECK-NEXT: vpermq %zmm0 , %zmm2 , %zmm0 {%k1} {z}
2242
2240
; CHECK-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
2243
2241
; CHECK-NEXT: retq
2244
2242
%shuf = shufflevector <8 x i64 > %vec , <8 x i64 > undef , <4 x i32 > <i32 2 , i32 0 , i32 3 , i32 4 >
@@ -4092,8 +4090,8 @@ define <4 x double> @test_masked_z_8xdouble_to_4xdouble_perm_mask5(<8 x double>
4092
4090
define <4 x double > @test_8xdouble_to_4xdouble_perm_mask6 (<8 x double > %vec ) {
4093
4091
; CHECK-FAST-LABEL: test_8xdouble_to_4xdouble_perm_mask6:
4094
4092
; CHECK-FAST: # %bb.0:
4095
- ; CHECK-FAST-NEXT: vmovapd {{.*#+}} ymm1 = [5,8 ,7,8 ]
4096
- ; CHECK-FAST-NEXT: vpermt2pd %zmm0, %zmm1, %zmm0
4093
+ ; CHECK-FAST-NEXT: vmovaps {{.*#+}} ymm1 = [5,0 ,7,0 ]
4094
+ ; CHECK-FAST-NEXT: vpermpd %zmm0, %zmm1, %zmm0
4097
4095
; CHECK-FAST-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
4098
4096
; CHECK-FAST-NEXT: retq
4099
4097
;
@@ -4109,11 +4107,11 @@ define <4 x double> @test_8xdouble_to_4xdouble_perm_mask6(<8 x double> %vec) {
4109
4107
define <4 x double > @test_masked_8xdouble_to_4xdouble_perm_mask6 (<8 x double > %vec , <4 x double > %vec2 , <4 x double > %mask ) {
4110
4108
; CHECK-FAST-LABEL: test_masked_8xdouble_to_4xdouble_perm_mask6:
4111
4109
; CHECK-FAST: # %bb.0:
4112
- ; CHECK-FAST-NEXT: vmovapd {{.*#+}} ymm3 = [5,8 ,7,8 ]
4113
- ; CHECK-FAST-NEXT: vpermi2pd %zmm0, %zmm0 , %zmm3
4114
- ; CHECK-FAST-NEXT: vxorpd %xmm0 , %xmm0 , %xmm0
4115
- ; CHECK-FAST-NEXT: vcmpeqpd %ymm0 , %ymm2, %k1
4116
- ; CHECK-FAST-NEXT: vblendmpd %ymm3 , %ymm1, %ymm0 {%k1}
4110
+ ; CHECK-FAST-NEXT: vmovapd {{.*#+}} ymm3 = [5,0 ,7,0 ]
4111
+ ; CHECK-FAST-NEXT: vpermpd %zmm0, %zmm3 , %zmm0
4112
+ ; CHECK-FAST-NEXT: vxorpd %xmm3 , %xmm3 , %xmm3
4113
+ ; CHECK-FAST-NEXT: vcmpeqpd %ymm3 , %ymm2, %k1
4114
+ ; CHECK-FAST-NEXT: vblendmpd %ymm0 , %ymm1, %ymm0 {%k1}
4117
4115
; CHECK-FAST-NEXT: retq
4118
4116
;
4119
4117
; CHECK-FAST-PERLANE-LABEL: test_masked_8xdouble_to_4xdouble_perm_mask6:
@@ -4134,10 +4132,10 @@ define <4 x double> @test_masked_8xdouble_to_4xdouble_perm_mask6(<8 x double> %v
4134
4132
define <4 x double > @test_masked_z_8xdouble_to_4xdouble_perm_mask6 (<8 x double > %vec , <4 x double > %mask ) {
4135
4133
; CHECK-FAST-LABEL: test_masked_z_8xdouble_to_4xdouble_perm_mask6:
4136
4134
; CHECK-FAST: # %bb.0:
4137
- ; CHECK-FAST-NEXT: vmovapd {{.*#+}} ymm2 = [5,8 ,7,8 ]
4135
+ ; CHECK-FAST-NEXT: vmovapd {{.*#+}} ymm2 = [5,0 ,7,0 ]
4138
4136
; CHECK-FAST-NEXT: vxorpd %xmm3, %xmm3, %xmm3
4139
4137
; CHECK-FAST-NEXT: vcmpeqpd %ymm3, %ymm1, %k1
4140
- ; CHECK-FAST-NEXT: vpermt2pd %zmm0, %zmm2, %zmm0 {%k1} {z}
4138
+ ; CHECK-FAST-NEXT: vpermpd %zmm0, %zmm2, %zmm0 {%k1} {z}
4141
4139
; CHECK-FAST-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
4142
4140
; CHECK-FAST-NEXT: retq
4143
4141
;
0 commit comments