@@ -1232,21 +1232,19 @@ define <32 x i8> @constant_shl_v32i8(<32 x i8> %a) nounwind {
12321232;
12331233; GFNIAVX1-LABEL: constant_shl_v32i8:
12341234; GFNIAVX1: # %bb.0:
1235- ; GFNIAVX1-NEXT: vextractf128 $1, %ymm0, %xmm1
1236- ; GFNIAVX1-NEXT: vpmovzxbw {{.*#+}} xmm2 = [1,4,16,64,128,32,8,2]
1237- ; GFNIAVX1-NEXT: vpmaddubsw %xmm2, %xmm1, %xmm3
1238- ; GFNIAVX1-NEXT: vbroadcastss {{.*#+}} xmm4 = [255,255,255,255,255,255,255,255]
1239- ; GFNIAVX1-NEXT: vpand %xmm4, %xmm3, %xmm3
1240- ; GFNIAVX1-NEXT: vmovdqa {{.*#+}} xmm5 = [0,2,0,8,0,32,0,128,0,64,0,16,0,4,0,1]
1241- ; GFNIAVX1-NEXT: vpmaddubsw %xmm5, %xmm1, %xmm1
1235+ ; GFNIAVX1-NEXT: vmovdqa {{.*#+}} xmm1 = [0,2,0,8,0,32,0,128,0,64,0,16,0,4,0,1]
1236+ ; GFNIAVX1-NEXT: vpmaddubsw %xmm1, %xmm0, %xmm2
1237+ ; GFNIAVX1-NEXT: vpsllw $8, %xmm2, %xmm2
1238+ ; GFNIAVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
1239+ ; GFNIAVX1-NEXT: vpmaddubsw %xmm1, %xmm3, %xmm1
12421240; GFNIAVX1-NEXT: vpsllw $8, %xmm1, %xmm1
1243- ; GFNIAVX1-NEXT: vpor %xmm1, %xmm3 , %xmm1
1244- ; GFNIAVX1-NEXT: vpmaddubsw % xmm2, %xmm0, %xmm2
1245- ; GFNIAVX1-NEXT: vpand %xmm4 , %xmm2 , %xmm2
1246- ; GFNIAVX1-NEXT: vpmaddubsw %xmm5 , %xmm0, %xmm0
1247- ; GFNIAVX1-NEXT: vpsllw $8 , %xmm0 , %xmm0
1248- ; GFNIAVX1-NEXT: vpor %xmm0 , %xmm2 , %xmm0
1249- ; GFNIAVX1-NEXT: vinsertf128 $1, %xmm1 , %ymm0, %ymm0
1241+ ; GFNIAVX1-NEXT: vinsertf128 $1, %xmm1, %ymm2 , %ymm1
1242+ ; GFNIAVX1-NEXT: vpmovzxbw {{.*#+}} xmm2 = [1,4,16,64,128,32,8,2]
1243+ ; GFNIAVX1-NEXT: vpmaddubsw %xmm2 , %xmm3 , %xmm3
1244+ ; GFNIAVX1-NEXT: vpmaddubsw %xmm2 , %xmm0, %xmm0
1245+ ; GFNIAVX1-NEXT: vinsertf128 $1 , %xmm3 , %ymm0, %ymm0
1246+ ; GFNIAVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip) , %ymm0 , %ymm0
1247+ ; GFNIAVX1-NEXT: vorps %ymm1 , %ymm0, %ymm0
12501248; GFNIAVX1-NEXT: retq
12511249;
12521250; GFNIAVX2-LABEL: constant_shl_v32i8:
@@ -2575,33 +2573,31 @@ define <64 x i8> @constant_shl_v64i8(<64 x i8> %a) nounwind {
25752573;
25762574; GFNIAVX1-LABEL: constant_shl_v64i8:
25772575; GFNIAVX1: # %bb.0:
2578- ; GFNIAVX1-NEXT: vextractf128 $1, %ymm0, %xmm2
2579- ; GFNIAVX1-NEXT: vpmovzxbw {{.*#+}} xmm3 = [1,4,16,64,128,32,8,2]
2580- ; GFNIAVX1-NEXT: vpmaddubsw %xmm3, %xmm2, %xmm4
2581- ; GFNIAVX1-NEXT: vbroadcastss {{.*#+}} xmm5 = [255,255,255,255,255,255,255,255]
2582- ; GFNIAVX1-NEXT: vpand %xmm5, %xmm4, %xmm4
2583- ; GFNIAVX1-NEXT: vmovdqa {{.*#+}} xmm6 = [0,2,0,8,0,32,0,128,0,64,0,16,0,4,0,1]
2584- ; GFNIAVX1-NEXT: vpmaddubsw %xmm6, %xmm2, %xmm2
2585- ; GFNIAVX1-NEXT: vpsllw $8, %xmm2, %xmm2
2586- ; GFNIAVX1-NEXT: vpor %xmm2, %xmm4, %xmm2
2587- ; GFNIAVX1-NEXT: vpmaddubsw %xmm3, %xmm0, %xmm4
2588- ; GFNIAVX1-NEXT: vpand %xmm5, %xmm4, %xmm4
2589- ; GFNIAVX1-NEXT: vpmaddubsw %xmm6, %xmm0, %xmm0
2590- ; GFNIAVX1-NEXT: vpsllw $8, %xmm0, %xmm0
2591- ; GFNIAVX1-NEXT: vpor %xmm0, %xmm4, %xmm0
2592- ; GFNIAVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
2593- ; GFNIAVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
2594- ; GFNIAVX1-NEXT: vpmaddubsw %xmm3, %xmm2, %xmm4
2595- ; GFNIAVX1-NEXT: vpand %xmm5, %xmm4, %xmm4
2596- ; GFNIAVX1-NEXT: vpmaddubsw %xmm6, %xmm2, %xmm2
2576+ ; GFNIAVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [0,2,0,8,0,32,0,128,0,64,0,16,0,4,0,1]
2577+ ; GFNIAVX1-NEXT: vpmaddubsw %xmm2, %xmm0, %xmm3
2578+ ; GFNIAVX1-NEXT: vpsllw $8, %xmm3, %xmm3
2579+ ; GFNIAVX1-NEXT: vextractf128 $1, %ymm0, %xmm4
2580+ ; GFNIAVX1-NEXT: vpmaddubsw %xmm2, %xmm4, %xmm5
2581+ ; GFNIAVX1-NEXT: vpsllw $8, %xmm5, %xmm5
2582+ ; GFNIAVX1-NEXT: vinsertf128 $1, %xmm5, %ymm3, %ymm3
2583+ ; GFNIAVX1-NEXT: vpmovzxbw {{.*#+}} xmm5 = [1,4,16,64,128,32,8,2]
2584+ ; GFNIAVX1-NEXT: vpmaddubsw %xmm5, %xmm4, %xmm4
2585+ ; GFNIAVX1-NEXT: vpmaddubsw %xmm5, %xmm0, %xmm0
2586+ ; GFNIAVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0
2587+ ; GFNIAVX1-NEXT: vbroadcastss {{.*#+}} ymm4 = [255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0]
2588+ ; GFNIAVX1-NEXT: vandps %ymm4, %ymm0, %ymm0
2589+ ; GFNIAVX1-NEXT: vorps %ymm3, %ymm0, %ymm0
2590+ ; GFNIAVX1-NEXT: vpmaddubsw %xmm2, %xmm1, %xmm3
2591+ ; GFNIAVX1-NEXT: vpsllw $8, %xmm3, %xmm3
2592+ ; GFNIAVX1-NEXT: vextractf128 $1, %ymm1, %xmm6
2593+ ; GFNIAVX1-NEXT: vpmaddubsw %xmm2, %xmm6, %xmm2
25972594; GFNIAVX1-NEXT: vpsllw $8, %xmm2, %xmm2
2598- ; GFNIAVX1-NEXT: vpor %xmm2, %xmm4, %xmm2
2599- ; GFNIAVX1-NEXT: vpmaddubsw %xmm3, %xmm1, %xmm3
2600- ; GFNIAVX1-NEXT: vpand %xmm5, %xmm3, %xmm3
2601- ; GFNIAVX1-NEXT: vpmaddubsw %xmm6, %xmm1, %xmm1
2602- ; GFNIAVX1-NEXT: vpsllw $8, %xmm1, %xmm1
2603- ; GFNIAVX1-NEXT: vpor %xmm1, %xmm3, %xmm1
2604- ; GFNIAVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1
2595+ ; GFNIAVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2
2596+ ; GFNIAVX1-NEXT: vpmaddubsw %xmm5, %xmm6, %xmm3
2597+ ; GFNIAVX1-NEXT: vpmaddubsw %xmm5, %xmm1, %xmm1
2598+ ; GFNIAVX1-NEXT: vinsertf128 $1, %xmm3, %ymm1, %ymm1
2599+ ; GFNIAVX1-NEXT: vandps %ymm4, %ymm1, %ymm1
2600+ ; GFNIAVX1-NEXT: vorps %ymm2, %ymm1, %ymm1
26052601; GFNIAVX1-NEXT: retq
26062602;
26072603; GFNIAVX2-LABEL: constant_shl_v64i8:
0 commit comments