@@ -1226,6 +1226,20 @@ define void @vp_umin_v4i32(<4 x i32> %a0, <4 x i32> %a1, ptr %out, i32 %vp) noun
1226
1226
declare <4 x i32 > @llvm.vp.umin.v4i32 (<4 x i32 >, <4 x i32 >, <4 x i1 >, i32 )
1227
1227
1228
1228
define <4 x i32 > @vp_bitreverse_v4i32 (<4 x i32 > %va , <4 x i1 > %m , i32 zeroext %evl ) {
1229
+ ; X86-LABEL: vp_bitreverse_v4i32:
1230
+ ; X86: # %bb.0:
1231
+ ; X86-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[3,2,1,0,7,6,5,4,11,10,9,8,15,14,13,12]
1232
+ ; X86-NEXT: vbroadcastss {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
1233
+ ; X86-NEXT: vpand %xmm1, %xmm0, %xmm2
1234
+ ; X86-NEXT: vmovdqa {{.*#+}} xmm3 = [0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240]
1235
+ ; X86-NEXT: vpshufb %xmm2, %xmm3, %xmm2
1236
+ ; X86-NEXT: vpsrlw $4, %xmm0, %xmm0
1237
+ ; X86-NEXT: vpand %xmm1, %xmm0, %xmm0
1238
+ ; X86-NEXT: vmovdqa {{.*#+}} xmm1 = [0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15]
1239
+ ; X86-NEXT: vpshufb %xmm0, %xmm1, %xmm0
1240
+ ; X86-NEXT: vpor %xmm0, %xmm2, %xmm0
1241
+ ; X86-NEXT: retl
1242
+ ;
1229
1243
; SSE-LABEL: vp_bitreverse_v4i32:
1230
1244
; SSE: # %bb.0:
1231
1245
; SSE-NEXT: pxor %xmm1, %xmm1
@@ -1307,6 +1321,11 @@ define <4 x i32> @vp_bitreverse_v4i32(<4 x i32> %va, <4 x i1> %m, i32 zeroext %e
1307
1321
declare <4 x i32 > @llvm.vp.bitreverse.v4i32 (<4 x i32 >, <4 x i1 >, i32 )
1308
1322
1309
1323
define <4 x i32 > @vp_bswap_v4i32 (<4 x i32 > %va , <4 x i1 > %m , i32 zeroext %evl ) {
1324
+ ; X86-LABEL: vp_bswap_v4i32:
1325
+ ; X86: # %bb.0:
1326
+ ; X86-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[3,2,1,0,7,6,5,4,11,10,9,8,15,14,13,12]
1327
+ ; X86-NEXT: retl
1328
+ ;
1310
1329
; SSE-LABEL: vp_bswap_v4i32:
1311
1330
; SSE: # %bb.0:
1312
1331
; SSE-NEXT: pxor %xmm1, %xmm1
0 commit comments