xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/vector-shuffle-256-v32.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mcpu=x86-64 -mattr=+avx | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX1
3*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mcpu=x86-64 -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Workertarget triple = "x86_64-unknown-unknown"
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
8*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
9*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
10*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
11*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm0
12*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
14*9880d681SAndroid Build Coastguard Worker;
15*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
16*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
17*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %ymm0
18*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
19*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
20*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
21*9880d681SAndroid Build Coastguard Worker}
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00(<32 x i8> %a, <32 x i8> %b) {
24*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00:
25*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
26*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
27*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
28*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]
29*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
30*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
31*9880d681SAndroid Build Coastguard Worker;
32*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00:
33*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
34*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm1
35*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]
36*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0
37*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
38*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0>
39*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
40*9880d681SAndroid Build Coastguard Worker}
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_02_00_00(<32 x i8> %a, <32 x i8> %b) {
43*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_02_00_00:
44*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
45*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
46*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
47*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0]
48*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
49*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
50*9880d681SAndroid Build Coastguard Worker;
51*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_02_00_00:
52*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
53*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm1
54*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0]
55*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0
56*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
57*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2, i32 0, i32 0>
58*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
59*9880d681SAndroid Build Coastguard Worker}
60*9880d681SAndroid Build Coastguard Worker
61*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_03_00_00_00(<32 x i8> %a, <32 x i8> %b) {
62*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_03_00_00_00:
63*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
64*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
65*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
66*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0]
67*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
68*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
69*9880d681SAndroid Build Coastguard Worker;
70*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_03_00_00_00:
71*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
72*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm1
73*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0]
74*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0
75*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
76*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 3, i32 0, i32 0, i32 0>
77*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
78*9880d681SAndroid Build Coastguard Worker}
79*9880d681SAndroid Build Coastguard Worker
80*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_04_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
81*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_04_00_00_00_00:
82*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
83*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
84*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
85*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0]
86*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
87*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
88*9880d681SAndroid Build Coastguard Worker;
89*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_04_00_00_00_00:
90*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
91*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm1
92*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0]
93*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0
94*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
95*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 4, i32 0, i32 0, i32 0, i32 0>
96*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
97*9880d681SAndroid Build Coastguard Worker}
98*9880d681SAndroid Build Coastguard Worker
99*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_05_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
100*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_05_00_00_00_00_00:
101*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
102*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
103*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
104*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0]
105*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
106*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
107*9880d681SAndroid Build Coastguard Worker;
108*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_05_00_00_00_00_00:
109*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
110*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm1
111*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0]
112*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0
113*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
114*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0>
115*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
116*9880d681SAndroid Build Coastguard Worker}
117*9880d681SAndroid Build Coastguard Worker
118*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_06_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
119*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_06_00_00_00_00_00_00:
120*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
121*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
122*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
123*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0]
124*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
125*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
126*9880d681SAndroid Build Coastguard Worker;
127*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_06_00_00_00_00_00_00:
128*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
129*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm1
130*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0]
131*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0
132*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
133*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 6, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
134*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
135*9880d681SAndroid Build Coastguard Worker}
136*9880d681SAndroid Build Coastguard Worker
137*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_07_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
138*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_07_00_00_00_00_00_00_00:
139*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
140*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
141*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
142*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0]
143*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
144*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
145*9880d681SAndroid Build Coastguard Worker;
146*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_07_00_00_00_00_00_00_00:
147*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
148*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm1
149*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0]
150*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0
151*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
152*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
153*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
154*9880d681SAndroid Build Coastguard Worker}
155*9880d681SAndroid Build Coastguard Worker
156*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
157*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00:
158*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
159*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
160*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
161*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0]
162*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
163*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
164*9880d681SAndroid Build Coastguard Worker;
165*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00:
166*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
167*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm1
168*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0]
169*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0
170*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
171*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 8, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
172*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
173*9880d681SAndroid Build Coastguard Worker}
174*9880d681SAndroid Build Coastguard Worker
175*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_09_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
176*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_09_00_00_00_00_00_00_00_00_00:
177*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
178*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
179*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
180*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0]
181*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
182*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
183*9880d681SAndroid Build Coastguard Worker;
184*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_09_00_00_00_00_00_00_00_00_00:
185*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
186*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm1
187*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0]
188*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0
189*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
190*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 9, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
191*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
192*9880d681SAndroid Build Coastguard Worker}
193*9880d681SAndroid Build Coastguard Worker
194*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_10_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
195*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_10_00_00_00_00_00_00_00_00_00_00:
196*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
197*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
198*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
199*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0]
200*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
201*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
202*9880d681SAndroid Build Coastguard Worker;
203*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_10_00_00_00_00_00_00_00_00_00_00:
204*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
205*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm1
206*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0]
207*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0
208*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
209*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
210*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
211*9880d681SAndroid Build Coastguard Worker}
212*9880d681SAndroid Build Coastguard Worker
213*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_11_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
214*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_11_00_00_00_00_00_00_00_00_00_00_00:
215*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
216*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
217*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
218*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0]
219*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
220*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
221*9880d681SAndroid Build Coastguard Worker;
222*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_11_00_00_00_00_00_00_00_00_00_00_00:
223*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
224*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm1
225*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0]
226*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0
227*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
228*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 11, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
229*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
230*9880d681SAndroid Build Coastguard Worker}
231*9880d681SAndroid Build Coastguard Worker
232*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_12_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
233*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_12_00_00_00_00_00_00_00_00_00_00_00_00:
234*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
235*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
236*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
237*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0]
238*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
239*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
240*9880d681SAndroid Build Coastguard Worker;
241*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_12_00_00_00_00_00_00_00_00_00_00_00_00:
242*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
243*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm1
244*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0]
245*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0
246*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
247*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 12, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
248*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
249*9880d681SAndroid Build Coastguard Worker}
250*9880d681SAndroid Build Coastguard Worker
251*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_13_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
252*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_13_00_00_00_00_00_00_00_00_00_00_00_00_00:
253*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
254*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
255*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
256*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0]
257*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
258*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
259*9880d681SAndroid Build Coastguard Worker;
260*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_13_00_00_00_00_00_00_00_00_00_00_00_00_00:
261*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
262*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm1
263*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0]
264*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0
265*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
266*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 13, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
267*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
268*9880d681SAndroid Build Coastguard Worker}
269*9880d681SAndroid Build Coastguard Worker
270*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
271*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
272*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
273*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
274*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
275*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
276*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
277*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
278*9880d681SAndroid Build Coastguard Worker;
279*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
280*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
281*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm1
282*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
283*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0
284*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
285*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 14, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
286*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
287*9880d681SAndroid Build Coastguard Worker}
288*9880d681SAndroid Build Coastguard Worker
289*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_15_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
290*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_15_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
291*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
292*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    movl $15, %eax
293*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovd %eax, %xmm1
294*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
295*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm2, %xmm2
296*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
297*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
298*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
299*9880d681SAndroid Build Coastguard Worker;
300*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_15_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
301*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
302*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    movl $15, %eax
303*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovd %eax, %xmm1
304*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
305*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm0
306*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0
307*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
308*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
309*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
310*9880d681SAndroid Build Coastguard Worker}
311*9880d681SAndroid Build Coastguard Worker
312*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
313*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
314*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
315*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
316*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
317*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
318*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
319*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
320*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
321*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
322*9880d681SAndroid Build Coastguard Worker;
323*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
324*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
325*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
326*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm2, %ymm2
327*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb %ymm2, %ymm1, %ymm1
328*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %xmm0
329*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]
330*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendvb %ymm2, %ymm1, %ymm0, %ymm0
331*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
332*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 16, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
333*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
334*9880d681SAndroid Build Coastguard Worker}
335*9880d681SAndroid Build Coastguard Worker
336*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_17_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
337*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_17_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
338*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
339*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
340*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
341*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
342*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
343*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0]
344*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
345*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
346*9880d681SAndroid Build Coastguard Worker;
347*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_17_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
348*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
349*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
350*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = <0,255,u,u,u,u,u,u,u,u,u,u,u,u,u,u,255,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u>
351*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendvb %ymm2, %ymm1, %ymm0, %ymm0
352*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
353*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
354*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 17, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
355*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
356*9880d681SAndroid Build Coastguard Worker}
357*9880d681SAndroid Build Coastguard Worker
358*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_18_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
359*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_18_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
360*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
361*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
362*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
363*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
364*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
365*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0]
366*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
367*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
368*9880d681SAndroid Build Coastguard Worker;
369*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_18_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
370*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
371*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
372*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = <0,0,255,255,u,u,u,u,u,u,u,u,u,u,u,u,255,255,u,u,u,u,u,u,u,u,u,u,u,u,u,u>
373*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendvb %ymm2, %ymm1, %ymm0, %ymm0
374*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
375*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
376*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 18, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
377*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
378*9880d681SAndroid Build Coastguard Worker}
379*9880d681SAndroid Build Coastguard Worker
380*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_19_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
381*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_19_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
382*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
383*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
384*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
385*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
386*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
387*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0]
388*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
389*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
390*9880d681SAndroid Build Coastguard Worker;
391*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_19_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
392*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
393*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
394*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = <0,0,255,255,u,u,u,u,u,u,u,u,u,u,u,u,255,255,u,u,u,u,u,u,u,u,u,u,u,u,u,u>
395*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendvb %ymm2, %ymm1, %ymm0, %ymm0
396*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
397*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
398*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 19, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
399*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
400*9880d681SAndroid Build Coastguard Worker}
401*9880d681SAndroid Build Coastguard Worker
402*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_20_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
403*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_20_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
404*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
405*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
406*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
407*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
408*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
409*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0]
410*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
411*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
412*9880d681SAndroid Build Coastguard Worker;
413*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_20_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
414*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
415*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
416*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3,4,5,6,7]
417*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
418*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
419*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 20, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
420*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
421*9880d681SAndroid Build Coastguard Worker}
422*9880d681SAndroid Build Coastguard Worker
423*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_21_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
424*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_21_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
425*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
426*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
427*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
428*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
429*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
430*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0]
431*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
432*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
433*9880d681SAndroid Build Coastguard Worker;
434*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_21_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
435*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
436*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
437*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3,4,5,6,7]
438*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
439*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
440*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 21, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
441*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
442*9880d681SAndroid Build Coastguard Worker}
443*9880d681SAndroid Build Coastguard Worker
444*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_22_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
445*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_22_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
446*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
447*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
448*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
449*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
450*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
451*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0]
452*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
453*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
454*9880d681SAndroid Build Coastguard Worker;
455*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_22_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
456*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
457*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
458*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3,4,5,6,7]
459*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
460*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
461*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 22, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
462*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
463*9880d681SAndroid Build Coastguard Worker}
464*9880d681SAndroid Build Coastguard Worker
465*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_23_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
466*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_23_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
467*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
468*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
469*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
470*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
471*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
472*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0]
473*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
474*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
475*9880d681SAndroid Build Coastguard Worker;
476*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_23_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
477*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
478*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
479*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3,4,5,6,7]
480*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
481*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
482*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 23, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
483*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
484*9880d681SAndroid Build Coastguard Worker}
485*9880d681SAndroid Build Coastguard Worker
486*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_24_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
487*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_24_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
488*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
489*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
490*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
491*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
492*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm2 = zero,zero,zero,zero,zero,zero,zero,xmm2[8],zero,zero,zero,zero,zero,zero,zero,zero
493*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0],zero,xmm0[0,0,0,0,0,0,0,0]
494*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpor %xmm2, %xmm0, %xmm0
495*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
496*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
497*9880d681SAndroid Build Coastguard Worker;
498*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_24_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
499*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
500*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
501*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
502*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
503*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
504*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 24, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
505*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
506*9880d681SAndroid Build Coastguard Worker}
507*9880d681SAndroid Build Coastguard Worker
508*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_25_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
509*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_25_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
510*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
511*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
512*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
513*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
514*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm2 = zero,zero,zero,zero,zero,zero,xmm2[9],zero,zero,zero,zero,zero,zero,zero,zero,zero
515*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0],zero,xmm0[0,0,0,0,0,0,0,0,0]
516*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpor %xmm2, %xmm0, %xmm0
517*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
518*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
519*9880d681SAndroid Build Coastguard Worker;
520*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_25_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
521*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
522*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
523*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
524*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
525*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
526*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 25, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
527*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
528*9880d681SAndroid Build Coastguard Worker}
529*9880d681SAndroid Build Coastguard Worker
530*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_26_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
531*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_26_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
532*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
533*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
534*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
535*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
536*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm2 = zero,zero,zero,zero,zero,xmm2[10],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
537*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0],zero,xmm0[0,0,0,0,0,0,0,0,0,0]
538*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpor %xmm2, %xmm0, %xmm0
539*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
540*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
541*9880d681SAndroid Build Coastguard Worker;
542*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_26_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
543*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
544*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
545*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
546*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
547*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
548*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 26, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
549*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
550*9880d681SAndroid Build Coastguard Worker}
551*9880d681SAndroid Build Coastguard Worker
552*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_27_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
553*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_27_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
554*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
555*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
556*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
557*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
558*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm2 = zero,zero,zero,zero,xmm2[11],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
559*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0],zero,xmm0[0,0,0,0,0,0,0,0,0,0,0]
560*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpor %xmm2, %xmm0, %xmm0
561*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
562*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
563*9880d681SAndroid Build Coastguard Worker;
564*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_27_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
565*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
566*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
567*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
568*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
569*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
570*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 27, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
571*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
572*9880d681SAndroid Build Coastguard Worker}
573*9880d681SAndroid Build Coastguard Worker
574*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_28_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
575*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_28_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
576*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
577*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
578*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
579*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
580*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm2[12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
581*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0],zero,xmm0[0,0,0,0,0,0,0,0,0,0,0,0]
582*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpor %xmm2, %xmm0, %xmm0
583*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
584*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
585*9880d681SAndroid Build Coastguard Worker;
586*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_28_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
587*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
588*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
589*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
590*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
591*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
592*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 28, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
593*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
594*9880d681SAndroid Build Coastguard Worker}
595*9880d681SAndroid Build Coastguard Worker
596*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_29_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
597*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_29_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
598*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
599*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
600*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
601*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
602*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm2 = zero,zero,xmm2[13],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
603*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0],zero,xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0]
604*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpor %xmm2, %xmm0, %xmm0
605*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
606*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
607*9880d681SAndroid Build Coastguard Worker;
608*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_29_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
609*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
610*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
611*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
612*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
613*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
614*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 29, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
615*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
616*9880d681SAndroid Build Coastguard Worker}
617*9880d681SAndroid Build Coastguard Worker
618*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_30_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
619*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_30_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
620*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
621*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
622*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
623*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
624*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm2 = zero,xmm2[14],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
625*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0],zero,xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,0]
626*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpor %xmm2, %xmm0, %xmm0
627*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
628*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
629*9880d681SAndroid Build Coastguard Worker;
630*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_30_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
631*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
632*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
633*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
634*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
635*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
636*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 30, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
637*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
638*9880d681SAndroid Build Coastguard Worker}
639*9880d681SAndroid Build Coastguard Worker
640*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_31_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
641*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_31_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
642*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
643*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
644*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
645*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    movl $128, %eax
646*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovd %eax, %xmm2
647*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm2
648*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
649*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
650*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpor %xmm0, %xmm2, %xmm0
651*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
652*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
653*9880d681SAndroid Build Coastguard Worker;
654*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_31_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
655*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
656*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
657*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
658*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    movl $15, %eax
659*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovd %eax, %xmm1
660*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb %ymm1, %ymm0, %ymm0
661*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
662*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 31, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
663*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
664*9880d681SAndroid Build Coastguard Worker}
665*9880d681SAndroid Build Coastguard Worker
666*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16(<32 x i8> %a, <32 x i8> %b) {
667*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16:
668*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
669*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm1
670*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm2, %xmm2
671*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
672*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
673*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
674*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
675*9880d681SAndroid Build Coastguard Worker;
676*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16:
677*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
678*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm1, %ymm1, %ymm1
679*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb %ymm1, %ymm0, %ymm0
680*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
681*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
682*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
683*9880d681SAndroid Build Coastguard Worker}
684*9880d681SAndroid Build Coastguard Worker
685*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_15_15_15_15_15_15_15_15_15_15_15_15_15_15_15_15_31_31_31_31_31_31_31_31_31_31_31_31_31_31_31_31(<32 x i8> %a, <32 x i8> %b) {
686*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_15_15_15_15_15_15_15_15_15_15_15_15_15_15_15_15_31_31_31_31_31_31_31_31_31_31_31_31_31_31_31_31:
687*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
688*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm1
689*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
690*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
691*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
692*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
693*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
694*9880d681SAndroid Build Coastguard Worker;
695*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_15_15_15_15_15_15_15_15_15_15_15_15_15_15_15_15_31_31_31_31_31_31_31_31_31_31_31_31_31_31_31_31:
696*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
697*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31]
698*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
699*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31>
700*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
701*9880d681SAndroid Build Coastguard Worker}
702*9880d681SAndroid Build Coastguard Worker
703*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_08_08_08_08_08_08_08_08_16_16_16_16_16_16_16_16_24_24_24_24_24_24_24_24(<32 x i8> %a, <32 x i8> %b) {
704*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_08_08_08_08_08_08_08_08_16_16_16_16_16_16_16_16_24_24_24_24_24_24_24_24:
705*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
706*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm1
707*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8]
708*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
709*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
710*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
711*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
712*9880d681SAndroid Build Coastguard Worker;
713*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_08_08_08_08_08_08_08_08_16_16_16_16_16_16_16_16_24_24_24_24_24_24_24_24:
714*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
715*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24]
716*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
717*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24>
718*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
719*9880d681SAndroid Build Coastguard Worker}
720*9880d681SAndroid Build Coastguard Worker
721*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_07_07_07_07_07_07_07_07_15_15_15_15_15_15_15_15_23_23_23_23_23_23_23_23_31_31_31_31_31_31_31_31(<32 x i8> %a, <32 x i8> %b) {
722*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_07_07_07_07_07_07_07_07_15_15_15_15_15_15_15_15_23_23_23_23_23_23_23_23_31_31_31_31_31_31_31_31:
723*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
724*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm1
725*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [7,7,7,7,7,7,7,7,15,15,15,15,15,15,15,15]
726*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
727*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
728*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
729*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
730*9880d681SAndroid Build Coastguard Worker;
731*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_07_07_07_07_07_07_07_07_15_15_15_15_15_15_15_15_23_23_23_23_23_23_23_23_31_31_31_31_31_31_31_31:
732*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
733*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[7,7,7,7,7,7,7,7,15,15,15,15,15,15,15,15,23,23,23,23,23,23,23,23,31,31,31,31,31,31,31,31]
734*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
735*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31>
736*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
737*9880d681SAndroid Build Coastguard Worker}
738*9880d681SAndroid Build Coastguard Worker
739*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_04_04_04_04_08_08_08_08_12_12_12_12_16_16_16_16_20_20_20_20_24_24_24_24_28_28_28_28(<32 x i8> %a, <32 x i8> %b) {
740*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_04_04_04_04_08_08_08_08_12_12_12_12_16_16_16_16_20_20_20_20_24_24_24_24_28_28_28_28:
741*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
742*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm1
743*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,0,0,0,4,4,4,4,8,8,8,8,12,12,12,12]
744*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
745*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
746*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
747*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
748*9880d681SAndroid Build Coastguard Worker;
749*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_04_04_04_04_08_08_08_08_12_12_12_12_16_16_16_16_20_20_20_20_24_24_24_24_28_28_28_28:
750*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
751*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,4,4,4,4,8,8,8,8,12,12,12,12,16,16,16,16,20,20,20,20,24,24,24,24,28,28,28,28]
752*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
753*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4, i32 8, i32 8, i32 8, i32 8, i32 12, i32 12, i32 12, i32 12, i32 16, i32 16, i32 16, i32 16, i32 20, i32 20, i32 20, i32 20, i32 24, i32 24, i32 24, i32 24, i32 28, i32 28, i32 28, i32 28>
754*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
755*9880d681SAndroid Build Coastguard Worker}
756*9880d681SAndroid Build Coastguard Worker
757*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_03_03_03_03_07_07_07_07_11_11_11_11_15_15_15_15_19_19_19_19_23_23_23_23_27_27_27_27_31_31_31_31(<32 x i8> %a, <32 x i8> %b) {
758*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_03_03_03_03_07_07_07_07_11_11_11_11_15_15_15_15_19_19_19_19_23_23_23_23_27_27_27_27_31_31_31_31:
759*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
760*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm1
761*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [3,3,3,3,7,7,7,7,11,11,11,11,15,15,15,15]
762*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
763*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
764*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
765*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
766*9880d681SAndroid Build Coastguard Worker;
767*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_03_03_03_03_07_07_07_07_11_11_11_11_15_15_15_15_19_19_19_19_23_23_23_23_27_27_27_27_31_31_31_31:
768*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
769*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[3,3,3,3,7,7,7,7,11,11,11,11,15,15,15,15,19,19,19,19,23,23,23,23,27,27,27,27,31,31,31,31]
770*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
771*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 3, i32 3, i32 3, i32 3, i32 7, i32 7, i32 7, i32 7, i32 11, i32 11, i32 11, i32 11, i32 15, i32 15, i32 15, i32 15, i32 19, i32 19, i32 19, i32 19, i32 23, i32 23, i32 23, i32 23, i32 27, i32 27, i32 27, i32 27, i32 31, i32 31, i32 31, i32 31>
772*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
773*9880d681SAndroid Build Coastguard Worker}
774*9880d681SAndroid Build Coastguard Worker
775*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_02_02_04_04_06_06_08_08_10_10_12_12_14_14_16_16_18_18_20_20_22_22_24_24_26_26_28_28_30_30(<32 x i8> %a, <32 x i8> %b) {
776*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_02_02_04_04_06_06_08_08_10_10_12_12_14_14_16_16_18_18_20_20_22_22_24_24_26_26_28_28_30_30:
777*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
778*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm1
779*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,0,2,2,4,4,6,6,8,8,10,10,12,12,14,14]
780*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
781*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
782*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
783*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
784*9880d681SAndroid Build Coastguard Worker;
785*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_02_02_04_04_06_06_08_08_10_10_12_12_14_14_16_16_18_18_20_20_22_22_24_24_26_26_28_28_30_30:
786*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
787*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,2,2,4,4,6,6,8,8,10,10,12,12,14,14,16,16,18,18,20,20,22,22,24,24,26,26,28,28,30,30]
788*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
789*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6, i32 8, i32 8, i32 10, i32 10, i32 12, i32 12, i32 14, i32 14, i32 16, i32 16, i32 18, i32 18, i32 20, i32 20, i32 22, i32 22, i32 24, i32 24, i32 26, i32 26, i32 28, i32 28, i32 30, i32 30>
790*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
791*9880d681SAndroid Build Coastguard Worker}
792*9880d681SAndroid Build Coastguard Worker
793*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_01_01_03_03_05_05_07_07_09_09_11_11_13_13_15_15_17_17_19_19_21_21_23_23_25_25_27_27_29_29_31_31(<32 x i8> %a, <32 x i8> %b) {
794*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_01_01_03_03_05_05_07_07_09_09_11_11_13_13_15_15_17_17_19_19_21_21_23_23_25_25_27_27_29_29_31_31:
795*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
796*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm1
797*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [1,1,3,3,5,5,7,7,9,9,11,11,13,13,15,15]
798*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
799*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
800*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
801*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
802*9880d681SAndroid Build Coastguard Worker;
803*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_01_01_03_03_05_05_07_07_09_09_11_11_13_13_15_15_17_17_19_19_21_21_23_23_25_25_27_27_29_29_31_31:
804*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
805*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[1,1,3,3,5,5,7,7,9,9,11,11,13,13,15,15,17,17,19,19,21,21,23,23,25,25,27,27,29,29,31,31]
806*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
807*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7, i32 9, i32 9, i32 11, i32 11, i32 13, i32 13, i32 15, i32 15, i32 17, i32 17, i32 19, i32 19, i32 21, i32 21, i32 23, i32 23, i32 25, i32 25, i32 27, i32 27, i32 29, i32 29, i32 31, i32 31>
808*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
809*9880d681SAndroid Build Coastguard Worker}
810*9880d681SAndroid Build Coastguard Worker
811*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00(<32 x i8> %a, <32 x i8> %b) {
812*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00:
813*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
814*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]
815*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
816*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
817*9880d681SAndroid Build Coastguard Worker;
818*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00:
819*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
820*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]
821*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]
822*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
823*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0>
824*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
825*9880d681SAndroid Build Coastguard Worker}
826*9880d681SAndroid Build Coastguard Worker
827*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_02_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_02_00_00(<32 x i8> %a, <32 x i8> %b) {
828*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_02_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_02_00_00:
829*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
830*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0]
831*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
832*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
833*9880d681SAndroid Build Coastguard Worker;
834*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_02_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_02_00_00:
835*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
836*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0]
837*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]
838*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
839*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2, i32 0, i32 0>
840*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
841*9880d681SAndroid Build Coastguard Worker}
842*9880d681SAndroid Build Coastguard Worker
843*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_07_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_07_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
844*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_07_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_07_00_00_00_00_00_00_00:
845*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
846*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0]
847*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
848*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
849*9880d681SAndroid Build Coastguard Worker;
850*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_07_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_07_00_00_00_00_00_00_00:
851*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
852*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0]
853*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]
854*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
855*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
856*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
857*9880d681SAndroid Build Coastguard Worker}
858*9880d681SAndroid Build Coastguard Worker
859*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
860*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00:
861*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
862*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0]
863*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
864*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
865*9880d681SAndroid Build Coastguard Worker;
866*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00:
867*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
868*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0]
869*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]
870*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
871*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 8, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 8, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
872*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
873*9880d681SAndroid Build Coastguard Worker}
874*9880d681SAndroid Build Coastguard Worker
875*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
876*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
877*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
878*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
879*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
880*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
881*9880d681SAndroid Build Coastguard Worker;
882*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
883*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
884*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
885*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]
886*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
887*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 14, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 14, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
888*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
889*9880d681SAndroid Build Coastguard Worker}
890*9880d681SAndroid Build Coastguard Worker
891*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_15_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_15_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00(<32 x i8> %a, <32 x i8> %b) {
892*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_15_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_15_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
893*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
894*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    movl $15, %eax
895*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovd %eax, %xmm1
896*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm0
897*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
898*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
899*9880d681SAndroid Build Coastguard Worker;
900*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_15_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_15_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
901*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
902*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    movl $15, %eax
903*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovd %eax, %xmm1
904*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb %xmm1, %xmm0, %xmm0
905*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]
906*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
907*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
908*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
909*9880d681SAndroid Build Coastguard Worker}
910*9880d681SAndroid Build Coastguard Worker
911*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_33_02_35_04_37_06_39_08_41_10_43_12_45_14_47_16_49_18_51_20_53_22_55_24_57_26_59_28_61_30_63(<32 x i8> %a, <32 x i8> %b) {
912*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_33_02_35_04_37_06_39_08_41_10_43_12_45_14_47_16_49_18_51_20_53_22_55_24_57_26_59_28_61_30_63:
913*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
914*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} ymm2 = [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]
915*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vandnps %ymm1, %ymm2, %ymm1
916*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vandps %ymm2, %ymm0, %ymm0
917*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vorps %ymm1, %ymm0, %ymm0
918*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
919*9880d681SAndroid Build Coastguard Worker;
920*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_33_02_35_04_37_06_39_08_41_10_43_12_45_14_47_16_49_18_51_20_53_22_55_24_57_26_59_28_61_30_63:
921*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
922*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [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]
923*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
924*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
925*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 33, i32 2, i32 35, i32 4, i32 37, i32 6, i32 39, i32 8, i32 41, i32 10, i32 43, i32 12, i32 45, i32 14, i32 47, i32 16, i32 49, i32 18, i32 51, i32 20, i32 53, i32 22, i32 55, i32 24, i32 57, i32 26, i32 59, i32 28, i32 61, i32 30, i32 63>
926*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
927*9880d681SAndroid Build Coastguard Worker}
928*9880d681SAndroid Build Coastguard Worker
929*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_32_01_34_03_36_05_38_07_40_09_42_11_44_13_46_15_48_17_50_19_52_21_54_23_56_25_58_27_60_29_62_31(<32 x i8> %a, <32 x i8> %b) {
930*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_32_01_34_03_36_05_38_07_40_09_42_11_44_13_46_15_48_17_50_19_52_21_54_23_56_25_58_27_60_29_62_31:
931*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
932*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} ymm2 = [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]
933*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vandnps %ymm0, %ymm2, %ymm0
934*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vandps %ymm2, %ymm1, %ymm1
935*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vorps %ymm0, %ymm1, %ymm0
936*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
937*9880d681SAndroid Build Coastguard Worker;
938*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_32_01_34_03_36_05_38_07_40_09_42_11_44_13_46_15_48_17_50_19_52_21_54_23_56_25_58_27_60_29_62_31:
939*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
940*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [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]
941*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendvb %ymm2, %ymm1, %ymm0, %ymm0
942*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
943*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 32, i32 1, i32 34, i32 3, i32 36, i32 5, i32 38, i32 7, i32 40, i32 9, i32 42, i32 11, i32 44, i32 13, i32 46, i32 15, i32 48, i32 17, i32 50, i32 19, i32 52, i32 21, i32 54, i32 23, i32 56, i32 25, i32 58, i32 27, i32 60, i32 29, i32 62, i32 31>
944*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
945*9880d681SAndroid Build Coastguard Worker}
946*9880d681SAndroid Build Coastguard Worker
947*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_zz_01_zz_03_zz_05_zz_07_zz_09_zz_11_zz_13_zz_15_zz_17_zz_19_zz_21_zz_23_zz_25_zz_27_zz_29_zz_31(<32 x i8> %a) {
948*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: shuffle_v32i8_zz_01_zz_03_zz_05_zz_07_zz_09_zz_11_zz_13_zz_15_zz_17_zz_19_zz_21_zz_23_zz_25_zz_27_zz_29_zz_31:
949*9880d681SAndroid Build Coastguard Worker; ALL:       # BB#0:
950*9880d681SAndroid Build Coastguard Worker; ALL-NEXT:    vandps {{.*}}(%rip), %ymm0, %ymm0
951*9880d681SAndroid Build Coastguard Worker; ALL-NEXT:    retq
952*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> zeroinitializer, <32 x i32> <i32 32, i32 1, i32 34, i32 3, i32 36, i32 5, i32 38, i32 7, i32 40, i32 9, i32 42, i32 11, i32 44, i32 13, i32 46, i32 15, i32 48, i32 17, i32 50, i32 19, i32 52, i32 21, i32 54, i32 23, i32 56, i32 25, i32 58, i32 27, i32 60, i32 29, i32 62, i32 31>
953*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
954*9880d681SAndroid Build Coastguard Worker}
955*9880d681SAndroid Build Coastguard Worker
956*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_01_zz_02_zz_04_uu_06_07_08_09_10_11_12_13_14_15_u6_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31(<32 x i8> %a) {
957*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_01_zz_02_zz_04_uu_06_07_08_09_10_11_12_13_14_15_u6_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31:
958*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
959*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm1 = xmm0[1],zero,xmm0[2],zero,xmm0[4,u,6,7,8,9,10,11,12,13,14,15]
960*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
961*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
962*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
963*9880d681SAndroid Build Coastguard Worker;
964*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_01_zz_02_zz_04_uu_06_07_08_09_10_11_12_13_14_15_u6_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31:
965*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
966*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[1],zero,ymm0[2],zero,ymm0[4,u,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]
967*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
968*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> zeroinitializer, <32 x i32> <i32 1, i32 32, i32 2, i32 32, i32 4, i32 undef, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
969*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
970*9880d681SAndroid Build Coastguard Worker}
971*9880d681SAndroid Build Coastguard Worker
972*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32(<32 x i8> %a, <32 x i8> %b) {
973*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32:
974*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
975*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
976*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7]
977*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
978*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
979*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
980*9880d681SAndroid Build Coastguard Worker;
981*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32:
982*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
983*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
984*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastw %xmm0, %ymm0
985*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
986*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32>
987*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
988*9880d681SAndroid Build Coastguard Worker}
989*9880d681SAndroid Build Coastguard Worker
990*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_16_48_16_48_16_48_16_48_16_48_16_48_16_48_16_48(<32 x i8> %a, <32 x i8> %b) {
991*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_16_48_16_48_16_48_16_48_16_48_16_48_16_48_16_48:
992*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
993*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
994*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm2[0,0,0,0,4,5,6,7]
995*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[0,0,1,1]
996*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm1
997*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
998*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
999*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7]
1000*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
1001*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm2, %ymm0
1002*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1003*9880d681SAndroid Build Coastguard Worker;
1004*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_16_48_16_48_16_48_16_48_16_48_16_48_16_48_16_48:
1005*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1006*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm2, %ymm2
1007*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb %ymm2, %ymm1, %ymm1
1008*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshuflw {{.*#+}} ymm0 = ymm0[0,0,0,0,4,5,6,7,8,8,8,8,12,13,14,15]
1009*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[0,0,1,1,4,4,5,5]
1010*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [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]
1011*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
1012*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1013*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 16, i32 48, i32 16, i32 48, i32 16, i32 48, i32 16, i32 48, i32 16, i32 48, i32 16, i32 48, i32 16, i32 48, i32 16, i32 48>
1014*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1015*9880d681SAndroid Build Coastguard Worker}
1016*9880d681SAndroid Build Coastguard Worker
1017*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_32_32_32_32_32_32_32_32_08_09_10_11_12_13_14_15_48_48_48_48_48_48_48_48_24_25_26_27_28_29_30_31(<32 x i8> %a, <32 x i8> %b) {
1018*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_32_32_32_32_32_32_32_32_08_09_10_11_12_13_14_15_48_48_48_48_48_48_48_48_24_25_26_27_28_29_30_31:
1019*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1020*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
1021*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[2,3,0,1]
1022*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm3
1023*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm3[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
1024*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm3[0,0,0,0,4,5,6,7]
1025*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]
1026*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[2,3,0,1]
1027*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
1028*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm1[0,0,0,0,4,5,6,7]
1029*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
1030*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1031*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1032*9880d681SAndroid Build Coastguard Worker;
1033*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_32_32_32_32_32_32_32_32_08_09_10_11_12_13_14_15_48_48_48_48_48_48_48_48_24_25_26_27_28_29_30_31:
1034*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1035*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm2, %ymm2
1036*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb %ymm2, %ymm1, %ymm1
1037*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]
1038*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1039*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
1040*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1041*9880d681SAndroid Build Coastguard Worker}
1042*9880d681SAndroid Build Coastguard Worker
1043*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_39_38_37_36_35_34_33_32_15_14_13_12_11_10_09_08_55_54_53_52_51_50_49_48_31_30_29_28_27_26_25_24(<32 x i8> %a, <32 x i8> %b) {
1044*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_39_38_37_36_35_34_33_32_15_14_13_12_11_10_09_08_55_54_53_52_51_50_49_48_31_30_29_28_27_26_25_24:
1045*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1046*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
1047*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm3 = <15,14,13,12,11,10,9,8,u,u,u,u,u,u,u,u>
1048*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm3, %xmm2, %xmm2
1049*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
1050*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm5 = <7,6,5,4,3,2,1,0,u,u,u,u,u,u,u,u>
1051*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm5, %xmm4, %xmm4
1052*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm4[0],xmm2[0]
1053*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm3, %xmm0, %xmm0
1054*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm5, %xmm1, %xmm1
1055*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
1056*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1057*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1058*9880d681SAndroid Build Coastguard Worker;
1059*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_39_38_37_36_35_34_33_32_15_14_13_12_11_10_09_08_55_54_53_52_51_50_49_48_31_30_29_28_27_26_25_24:
1060*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1061*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]
1062*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8,23,22,21,20,19,18,17,16,31,30,29,28,27,26,25,24]
1063*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1064*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 39, i32 38, i32 37, i32 36, i32 35, i32 34, i32 33, i32 32, i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 55, i32 54, i32 53, i32 52, i32 51, i32 50, i32 49, i32 48, i32 31, i32 30, i32 29, i32 28, i32 27, i32 26, i32 25, i32 24>
1065*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1066*9880d681SAndroid Build Coastguard Worker}
1067*9880d681SAndroid Build Coastguard Worker
1068*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_39_38_37_36_35_34_33_32_07_06_05_04_03_02_01_00_55_54_53_52_51_50_49_48_23_22_21_20_19_18_17_16(<32 x i8> %a, <32 x i8> %b) {
1069*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_39_38_37_36_35_34_33_32_07_06_05_04_03_02_01_00_55_54_53_52_51_50_49_48_23_22_21_20_19_18_17_16:
1070*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1071*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
1072*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm3
1073*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
1074*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm3 = [14,12,10,8,6,4,2,0,15,13,11,9,7,5,3,1]
1075*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm3, %xmm2, %xmm2
1076*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]
1077*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm3, %xmm0, %xmm0
1078*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1079*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1080*9880d681SAndroid Build Coastguard Worker;
1081*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_39_38_37_36_35_34_33_32_07_06_05_04_03_02_01_00_55_54_53_52_51_50_49_48_23_22_21_20_19_18_17_16:
1082*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1083*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[u,u,u,u,u,u,u,u,7,6,5,4,3,2,1,0,u,u,u,u,u,u,u,u,23,22,21,20,19,18,17,16]
1084*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[7,6,5,4,3,2,1,0,u,u,u,u,u,u,u,u,23,22,21,20,19,18,17,16,u,u,u,u,u,u,u,u]
1085*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]
1086*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1087*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 39, i32 38, i32 37, i32 36, i32 35, i32 34, i32 33, i32 32, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0, i32 55, i32 54, i32 53, i32 52, i32 51, i32 50, i32 49, i32 48, i32 23, i32 22, i32 21, i32 20, i32 19, i32 18, i32 17, i32 16>
1088*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1089*9880d681SAndroid Build Coastguard Worker}
1090*9880d681SAndroid Build Coastguard Worker
1091*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00_16_16_16_16_16_16_16_16_16_16_16_16_16_16_17_16(<32 x i8> %a, <32 x i8> %b) {
1092*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00_16_16_16_16_16_16_16_16_16_16_16_16_16_16_17_16:
1093*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1094*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm1
1095*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]
1096*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
1097*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
1098*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
1099*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1100*9880d681SAndroid Build Coastguard Worker;
1101*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00_16_16_16_16_16_16_16_16_16_16_16_16_16_16_17_16:
1102*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1103*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,16]
1104*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1105*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 17, i32 16>
1106*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1107*9880d681SAndroid Build Coastguard Worker}
1108*9880d681SAndroid Build Coastguard Worker
1109*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_02_00_00_16_16_16_16_16_16_16_16_16_16_16_16_16_18_16_16(<32 x i8> %a, <32 x i8> %b) {
1110*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_02_00_00_16_16_16_16_16_16_16_16_16_16_16_16_16_18_16_16:
1111*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1112*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm1
1113*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0]
1114*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
1115*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
1116*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
1117*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1118*9880d681SAndroid Build Coastguard Worker;
1119*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_02_00_00_16_16_16_16_16_16_16_16_16_16_16_16_16_18_16_16:
1120*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1121*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,18,16,16]
1122*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1123*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2, i32 0, i32 0, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 18, i32 16, i32 16>
1124*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1125*9880d681SAndroid Build Coastguard Worker}
1126*9880d681SAndroid Build Coastguard Worker
1127*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_07_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_23_16_16_16_16_16_16_16(<32 x i8> %a, <32 x i8> %b) {
1128*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_07_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_23_16_16_16_16_16_16_16:
1129*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1130*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm1
1131*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0]
1132*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
1133*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
1134*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
1135*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1136*9880d681SAndroid Build Coastguard Worker;
1137*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_07_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_23_16_16_16_16_16_16_16:
1138*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1139*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,23,16,16,16,16,16,16,16]
1140*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1141*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 23, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
1142*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1143*9880d681SAndroid Build Coastguard Worker}
1144*9880d681SAndroid Build Coastguard Worker
1145*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_24_16_16_16_16_16_16_16_16(<32 x i8> %a, <32 x i8> %b) {
1146*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_24_16_16_16_16_16_16_16_16:
1147*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1148*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm1
1149*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0]
1150*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
1151*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
1152*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
1153*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1154*9880d681SAndroid Build Coastguard Worker;
1155*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_24_16_16_16_16_16_16_16_16:
1156*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1157*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,24,16,16,16,16,16,16,16,16]
1158*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1159*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 8, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 24, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
1160*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1161*9880d681SAndroid Build Coastguard Worker}
1162*9880d681SAndroid Build Coastguard Worker
1163*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_30_16_16_16_16_16_16_16_16_16_16_16_16_16_16(<32 x i8> %a, <32 x i8> %b) {
1164*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_30_16_16_16_16_16_16_16_16_16_16_16_16_16_16:
1165*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1166*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm1
1167*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
1168*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
1169*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
1170*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
1171*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1172*9880d681SAndroid Build Coastguard Worker;
1173*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_30_16_16_16_16_16_16_16_16_16_16_16_16_16_16:
1174*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1175*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,30,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
1176*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1177*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 14, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 16, i32 30, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
1178*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1179*9880d681SAndroid Build Coastguard Worker}
1180*9880d681SAndroid Build Coastguard Worker
1181*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_15_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_31_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16(<32 x i8> %a, <32 x i8> %b) {
1182*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_15_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_31_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16:
1183*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1184*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    movl $15, %eax
1185*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovd %eax, %xmm1
1186*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
1187*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm2, %xmm2
1188*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm0
1189*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1190*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1191*9880d681SAndroid Build Coastguard Worker;
1192*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_15_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_31_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16:
1193*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1194*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
1195*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1196*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 31, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
1197*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1198*9880d681SAndroid Build Coastguard Worker}
1199*9880d681SAndroid Build Coastguard Worker
1200*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_32_01_33_02_34_03_35_04_36_05_37_06_38_07_39_16_48_17_49_18_50_19_51_20_52_21_53_22_54_23_55(<32 x i8> %a, <32 x i8> %b) {
1201*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_32_01_33_02_34_03_35_04_36_05_37_06_38_07_39_16_48_17_49_18_50_19_51_20_52_21_53_22_54_23_55:
1202*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1203*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1204*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1205*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
1206*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
1207*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1208*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1209*9880d681SAndroid Build Coastguard Worker;
1210*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_32_01_33_02_34_03_35_04_36_05_37_06_38_07_39_16_48_17_49_18_50_19_51_20_52_21_53_22_54_23_55:
1211*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1212*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpunpcklbw {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[4],ymm1[4],ymm0[5],ymm1[5],ymm0[6],ymm1[6],ymm0[7],ymm1[7],ymm0[16],ymm1[16],ymm0[17],ymm1[17],ymm0[18],ymm1[18],ymm0[19],ymm1[19],ymm0[20],ymm1[20],ymm0[21],ymm1[21],ymm0[22],ymm1[22],ymm0[23],ymm1[23]
1213*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1214*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50, i32 19, i32 51, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55>
1215*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1216*9880d681SAndroid Build Coastguard Worker}
1217*9880d681SAndroid Build Coastguard Worker
1218*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_08_40_09_41_10_42_11_43_12_44_13_45_14_46_15_47_24_56_25_57_26_58_27_59_28_60_29_61_30_62_31_63(<32 x i8> %a, <32 x i8> %b) {
1219*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_08_40_09_41_10_42_11_43_12_44_13_45_14_46_15_47_24_56_25_57_26_58_27_59_28_60_29_61_30_62_31_63:
1220*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1221*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1222*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1223*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
1224*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15]
1225*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1226*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1227*9880d681SAndroid Build Coastguard Worker;
1228*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_08_40_09_41_10_42_11_43_12_44_13_45_14_46_15_47_24_56_25_57_26_58_27_59_28_60_29_61_30_62_31_63:
1229*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1230*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpunpckhbw {{.*#+}} ymm0 = ymm0[8],ymm1[8],ymm0[9],ymm1[9],ymm0[10],ymm1[10],ymm0[11],ymm1[11],ymm0[12],ymm1[12],ymm0[13],ymm1[13],ymm0[14],ymm1[14],ymm0[15],ymm1[15],ymm0[24],ymm1[24],ymm0[25],ymm1[25],ymm0[26],ymm1[26],ymm0[27],ymm1[27],ymm0[28],ymm1[28],ymm0[29],ymm1[29],ymm0[30],ymm1[30],ymm0[31],ymm1[31]
1231*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1232*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 8, i32 40, i32 9, i32 41, i32 10, i32 42, i32 11, i32 43, i32 12, i32 44, i32 13, i32 45, i32 14, i32 46, i32 15, i32 47, i32 24, i32 56, i32 25, i32 57, i32 26, i32 58, i32 27, i32 59, i32 28, i32 60, i32 29, i32 61, i32 30, i32 62, i32 31, i32 63>
1233*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1234*9880d681SAndroid Build Coastguard Worker}
1235*9880d681SAndroid Build Coastguard Worker
1236*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_32_01_33_02_34_03_35_04_36_05_37_06_38_07_39_24_56_25_57_26_58_27_59_28_60_29_61_30_62_31_63(<32 x i8> %a, <32 x i8> %b) {
1237*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_32_01_33_02_34_03_35_04_36_05_37_06_38_07_39_24_56_25_57_26_58_27_59_28_60_29_61_30_62_31_63:
1238*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1239*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1240*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1241*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
1242*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
1243*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1244*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1245*9880d681SAndroid Build Coastguard Worker;
1246*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_32_01_33_02_34_03_35_04_36_05_37_06_38_07_39_24_56_25_57_26_58_27_59_28_60_29_61_30_62_31_63:
1247*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1248*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,u,1,u,2,u,3,u,4,u,5,u,6,u,7,u,24,u,25,u,26,u,27,u,28,u,29,u,30,u,31,u]
1249*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[u,0,u,1,u,2,u,3,u,4,u,5,u,6,u,7,u,24,u,25,u,26,u,27,u,28,u,29,u,30,u,31]
1250*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [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]
1251*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
1252*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1253*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 24, i32 56, i32 25, i32 57, i32 26, i32 58, i32 27, i32 59, i32 28, i32 60, i32 29, i32 61, i32 30, i32 62, i32 31, i32 63>
1254*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1255*9880d681SAndroid Build Coastguard Worker}
1256*9880d681SAndroid Build Coastguard Worker
1257*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_08_40_09_41_10_42_11_43_12_44_13_45_14_46_15_47_16_48_17_49_18_50_19_51_20_52_21_53_22_54_23_55(<32 x i8> %a, <32 x i8> %b) {
1258*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_08_40_09_41_10_42_11_43_12_44_13_45_14_46_15_47_16_48_17_49_18_50_19_51_20_52_21_53_22_54_23_55:
1259*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1260*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1261*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1262*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
1263*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15]
1264*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1265*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1266*9880d681SAndroid Build Coastguard Worker;
1267*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_08_40_09_41_10_42_11_43_12_44_13_45_14_46_15_47_16_48_17_49_18_50_19_51_20_52_21_53_22_54_23_55:
1268*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1269*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[8,u,9,u,10,u,11,u,12,u,13,u,14,u,15,u,16,u,17,u,18,u,19,u,20,u,21,u,22,u,23,u]
1270*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[u,8,u,9,u,10,u,11,u,12,u,13,u,14,u,15,u,16,u,17,u,18,u,19,u,20,u,21,u,22,u,23]
1271*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [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]
1272*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
1273*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1274*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 8, i32 40, i32 9, i32 41, i32 10, i32 42, i32 11, i32 43, i32 12, i32 44, i32 13, i32 45, i32 14, i32 46, i32 15, i32 47, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50, i32 19, i32 51, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55>
1275*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1276*9880d681SAndroid Build Coastguard Worker}
1277*9880d681SAndroid Build Coastguard Worker
1278*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00_16_17_16_16_16_16_16_16_16_16_16_16_16_16_16_16(<32 x i8> %a, <32 x i8> %b) {
1279*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00_16_17_16_16_16_16_16_16_16_16_16_16_16_16_16_16:
1280*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1281*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm1 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]
1282*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1283*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
1284*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1285*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1286*9880d681SAndroid Build Coastguard Worker;
1287*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00_16_17_16_16_16_16_16_16_16_16_16_16_16_16_16_16:
1288*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1289*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,16,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
1290*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1291*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 16, i32 17, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
1292*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1293*9880d681SAndroid Build Coastguard Worker}
1294*9880d681SAndroid Build Coastguard Worker
1295*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_02_00_00_16_16_18_16_16_16_16_16_16_16_16_16_16_16_16_16(<32 x i8> %a, <32 x i8> %b) {
1296*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_02_00_00_16_16_18_16_16_16_16_16_16_16_16_16_16_16_16_16:
1297*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1298*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm1 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0]
1299*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1300*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0]
1301*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1302*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1303*9880d681SAndroid Build Coastguard Worker;
1304*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_02_00_00_16_16_18_16_16_16_16_16_16_16_16_16_16_16_16_16:
1305*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1306*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,16,16,18,16,16,16,16,16,16,16,16,16,16,16,16,16]
1307*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1308*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2, i32 0, i32 0, i32 16, i32 16, i32 18, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
1309*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1310*9880d681SAndroid Build Coastguard Worker}
1311*9880d681SAndroid Build Coastguard Worker
1312*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_07_00_00_00_00_00_00_00_16_16_16_16_16_16_16_23_16_16_16_16_16_16_16_16(<32 x i8> %a, <32 x i8> %b) {
1313*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_07_00_00_00_00_00_00_00_16_16_16_16_16_16_16_23_16_16_16_16_16_16_16_16:
1314*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1315*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm1 = xmm0[0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0]
1316*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1317*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0]
1318*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1319*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1320*9880d681SAndroid Build Coastguard Worker;
1321*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_07_00_00_00_00_00_00_00_16_16_16_16_16_16_16_23_16_16_16_16_16_16_16_16:
1322*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1323*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,16,16,16,16,16,16,16,23,16,16,16,16,16,16,16,16]
1324*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1325*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 23, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
1326*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1327*9880d681SAndroid Build Coastguard Worker}
1328*9880d681SAndroid Build Coastguard Worker
1329*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_24_16_16_16_16_16_16_16(<32 x i8> %a, <32 x i8> %b) {
1330*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_24_16_16_16_16_16_16_16:
1331*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1332*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm1 = xmm0[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0]
1333*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1334*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0]
1335*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1336*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1337*9880d681SAndroid Build Coastguard Worker;
1338*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_24_16_16_16_16_16_16_16:
1339*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1340*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,24,16,16,16,16,16,16,16]
1341*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1342*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 8, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 24, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
1343*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1344*9880d681SAndroid Build Coastguard Worker}
1345*9880d681SAndroid Build Coastguard Worker
1346*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_16_16_16_16_16_16_30_16(<32 x i8> %a, <32 x i8> %b) {
1347*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_16_16_16_16_16_16_30_16:
1348*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1349*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm1 = xmm0[0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
1350*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1351*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0]
1352*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1353*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1354*9880d681SAndroid Build Coastguard Worker;
1355*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_16_16_16_16_16_16_30_16:
1356*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1357*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,30,16]
1358*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1359*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 14, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 30, i32 16>
1360*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1361*9880d681SAndroid Build Coastguard Worker}
1362*9880d681SAndroid Build Coastguard Worker
1363*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_15_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_31(<32 x i8> %a, <32 x i8> %b) {
1364*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_15_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_31:
1365*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1366*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    movl $15, %eax
1367*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovd %eax, %xmm1
1368*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm1
1369*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1370*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15]
1371*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1372*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1373*9880d681SAndroid Build Coastguard Worker;
1374*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_15_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_31:
1375*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1376*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,31]
1377*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1378*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 31>
1379*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1380*9880d681SAndroid Build Coastguard Worker}
1381*9880d681SAndroid Build Coastguard Worker
1382*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_04_04_04_04_08_08_08_08_12_12_12_12_28_28_28_28_24_24_24_24_20_20_20_20_16_16_16_16(<32 x i8> %a, <32 x i8> %b) {
1383*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_04_04_04_04_08_08_08_08_12_12_12_12_28_28_28_28_24_24_24_24_20_20_20_20_16_16_16_16:
1384*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1385*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm1 = xmm0[0,0,0,0,4,4,4,4,8,8,8,8,12,12,12,12]
1386*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1387*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[12,12,12,12,8,8,8,8,4,4,4,4,0,0,0,0]
1388*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1389*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1390*9880d681SAndroid Build Coastguard Worker;
1391*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_04_04_04_04_08_08_08_08_12_12_12_12_28_28_28_28_24_24_24_24_20_20_20_20_16_16_16_16:
1392*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1393*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,4,4,4,4,8,8,8,8,12,12,12,12,28,28,28,28,24,24,24,24,20,20,20,20,16,16,16,16]
1394*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1395*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4, i32 8, i32 8, i32 8, i32 8, i32 12, i32 12, i32 12, i32 12, i32 28, i32 28, i32 28, i32 28, i32 24, i32 24, i32 24, i32 24, i32 20, i32 20, i32 20, i32 20, i32 16, i32 16, i32 16, i32 16>
1396*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1397*9880d681SAndroid Build Coastguard Worker}
1398*9880d681SAndroid Build Coastguard Worker
1399*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_08_08_08_08_08_08_08_08_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_24_24_24_24_24_24_24_24(<32 x i8> %a, <32 x i8> %b) {
1400*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_08_08_08_08_08_08_08_08_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_24_24_24_24_24_24_24_24:
1401*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1402*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm1 = xmm0[8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0]
1403*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1404*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8]
1405*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1406*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1407*9880d681SAndroid Build Coastguard Worker;
1408*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_08_08_08_08_08_08_08_08_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_24_24_24_24_24_24_24_24:
1409*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1410*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24]
1411*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1412*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24>
1413*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1414*9880d681SAndroid Build Coastguard Worker}
1415*9880d681SAndroid Build Coastguard Worker
1416*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_16_16_16_16_uu_uu_uu_uu_uu_16_16_16_16_16_30_16(<32 x i8> %a, <32 x i8> %b) {
1417*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_16_16_16_16_uu_uu_uu_uu_uu_16_16_16_16_16_30_16:
1418*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1419*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm1
1420*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[0,0,0,0,u,u,u,u,u,0,0,0,0,0,14,0]
1421*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
1422*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1423*9880d681SAndroid Build Coastguard Worker;
1424*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_16_16_16_16_uu_uu_uu_uu_uu_16_16_16_16_16_30_16:
1425*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1426*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,16,16,16,16,u,u,u,u,u,16,16,16,16,16,30,16]
1427*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1428*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 16, i32 16, i32 16, i32 16, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 16, i32 16, i32 16, i32 16, i32 16, i32 30, i32 16>
1429*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1430*9880d681SAndroid Build Coastguard Worker}
1431*9880d681SAndroid Build Coastguard Worker
1432*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_uu_14_uu_uu_00_00_00_00_00_00_00_00_00_00_00_00_16_16_uu_16_uu_uu_uu_uu_16_16_16_16_16_16_30_16(<32 x i8> %a, <32 x i8> %b) {
1433*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_uu_14_uu_uu_00_00_00_00_00_00_00_00_00_00_00_00_16_16_uu_16_uu_uu_uu_uu_16_16_16_16_16_16_30_16:
1434*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1435*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm1 = xmm0[14,14,1,1,0,0,0,0,0,0,0,0,0,0,0,0]
1436*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1437*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,u,0,u,u,u,u,0,0,0,0,0,0,14,0]
1438*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1439*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1440*9880d681SAndroid Build Coastguard Worker;
1441*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_uu_14_uu_uu_00_00_00_00_00_00_00_00_00_00_00_00_16_16_uu_16_uu_uu_uu_uu_16_16_16_16_16_16_30_16:
1442*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1443*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[u,14,u,u,0,0,0,0,0,0,0,0,0,0,0,0,16,16,u,16,u,u,u,u,16,16,16,16,16,16,30,16]
1444*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1445*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 undef, i32 14, i32 undef, i32 undef, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 16, i32 16, i32 undef, i32 16, i32 undef, i32 undef, i32 undef, i32 undef, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 30, i32 16>
1446*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1447*9880d681SAndroid Build Coastguard Worker}
1448*9880d681SAndroid Build Coastguard Worker
1449*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_uu_uu_uu_04_uu_08_08_08_08_uu_uu_12_uu_28_28_28_28_uu_uu_uu_24_20_20_20_20_16_16_16_16(<32 x i8> %a, <32 x i8> %b) {
1450*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_uu_uu_uu_04_uu_08_08_08_08_uu_uu_12_uu_28_28_28_28_uu_uu_uu_24_20_20_20_20_16_16_16_16:
1451*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1452*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm1 = xmm0[0,0,0,0,4,4,4,4,8,8,8,8,12,12,12,12]
1453*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1454*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[12,12,12,12,8,8,8,8,4,4,4,4,0,0,0,0]
1455*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1456*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1457*9880d681SAndroid Build Coastguard Worker;
1458*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_uu_uu_uu_04_uu_08_08_08_08_uu_uu_12_uu_28_28_28_28_uu_uu_uu_24_20_20_20_20_16_16_16_16:
1459*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1460*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,u,u,u,4,u,8,8,8,8,u,u,12,u,28,28,28,28,u,u,u,24,20,20,20,20,16,16,16,16]
1461*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1462*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 undef, i32 undef, i32 undef, i32 4, i32 undef, i32 8, i32 8, i32 8, i32 8, i32 undef, i32 undef, i32 12, i32 undef, i32 28, i32 28, i32 28, i32 28, i32 undef, i32 undef, i32 undef, i32 24, i32 20, i32 20, i32 20, i32 20, i32 16, i32 16, i32 16, i32 16>
1463*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1464*9880d681SAndroid Build Coastguard Worker}
1465*9880d681SAndroid Build Coastguard Worker
1466*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_08_08_08_08_08_08_08_08_uu_uu_uu_uu_uu_uu_uu_uu_16_16_16_uu_uu_uu_uu_uu_uu_uu_24_24_24_24_24_24(<32 x i8> %a, <32 x i8> %b) {
1467*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_08_08_08_08_08_08_08_08_uu_uu_uu_uu_uu_uu_uu_uu_16_16_16_uu_uu_uu_uu_uu_uu_uu_24_24_24_24_24_24:
1468*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1469*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm0[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]
1470*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm1[0,0,0,0,4,5,6,7]
1471*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1472*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8]
1473*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1474*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1475*9880d681SAndroid Build Coastguard Worker;
1476*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_08_08_08_08_08_08_08_08_uu_uu_uu_uu_uu_uu_uu_uu_16_16_16_uu_uu_uu_uu_uu_uu_uu_24_24_24_24_24_24:
1477*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1478*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[8,8,8,8,8,8,8,8,u,u,u,u,u,u,u,u,16,16,16,u,u,u,u,u,u,u,24,24,24,24,24,24]
1479*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1480*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 16, i32 16, i32 16, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24>
1481*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1482*9880d681SAndroid Build Coastguard Worker}
1483*9880d681SAndroid Build Coastguard Worker
1484*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_42_45_12_13_35_35_60_40_17_22_29_44_33_12_48_51_20_19_52_19_49_54_37_32_48_42_59_07_36_34_36_39(<32 x i8> %a, <32 x i8> %b) {
1485*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_42_45_12_13_35_35_60_40_17_22_29_44_33_12_48_51_20_19_52_19_49_54_37_32_48_42_59_07_36_34_36_39:
1486*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1487*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1488*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm3 = xmm2[u,u,4,u,1,6],zero,zero,xmm2[0],zero,xmm2[11,u],zero,zero,zero,zero
1489*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm4 = xmm1[u,u],zero,xmm1[u],zero,zero,xmm1[5,0],zero,xmm1[10],zero,xmm1[u,4,2,4,7]
1490*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpor %xmm3, %xmm4, %xmm3
1491*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm4
1492*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm5 = xmm4[0],xmm0[0],xmm4[1],xmm0[1],xmm4[2],xmm0[2],xmm4[3],xmm0[3],xmm4[4],xmm0[4],xmm4[5],xmm0[5],xmm4[6],xmm0[6],xmm4[7],xmm0[7]
1493*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm5 = xmm5[8,6,u,6,u,u,u,u,u,u,u,15,u,u,u,u]
1494*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm6 = [0,0,255,0,255,255,255,255,255,255,255,0,255,255,255,255]
1495*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpblendvb %xmm6, %xmm3, %xmm5, %xmm3
1496*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm2 = zero,zero,xmm2[u,u],zero,zero,xmm2[12],zero,xmm2[u,u,u],zero,zero,xmm2[u,0,3]
1497*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[10,13,u,u,3,3],zero,xmm1[8,u,u,u,12,1,u],zero,zero
1498*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpor %xmm2, %xmm1, %xmm1
1499*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm2 = xmm4[u,u],zero,zero,xmm4[u,u,u,u,1,6,13,u,u],zero,xmm4[u,u]
1500*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[u,u,12,13,u,u,u,u],zero,zero,zero,xmm0[u,u,12,u,u]
1501*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpor %xmm2, %xmm0, %xmm0
1502*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [255,255,0,0,255,255,255,255,0,0,0,255,255,0,255,255]
1503*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpblendvb %xmm2, %xmm1, %xmm0, %xmm0
1504*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm0
1505*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1506*9880d681SAndroid Build Coastguard Worker;
1507*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_42_45_12_13_35_35_60_40_17_22_29_44_33_12_48_51_20_19_52_19_49_54_37_32_48_42_59_07_36_34_36_39:
1508*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1509*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm2 = ymm1[2,3,0,1]
1510*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,12,u,u,u,u,u,u,u,0,3,u,u,u,u,u,u,21,16,u,26,u,u,20,18,20,23]
1511*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[10,13,u,u,3,3,u,8,u,u,u,12,1,u,u,u,u,u,20,u,17,22,u,u,16,u,27,u,u,u,u,u]
1512*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} ymm3 = <255,255,u,u,255,255,0,255,u,u,u,255,255,u,0,0,u,u,255,u,255,255,0,0,255,0,255,u,0,0,0,0>
1513*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendvb %ymm3, %ymm1, %ymm2, %ymm1
1514*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm2 = ymm0[2,3,0,1]
1515*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,1,6,13,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,23,u,u,u,u]
1516*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[u,u,12,13,u,u,u,u,u,u,u,u,u,12,u,u,20,19,u,19,u,u,u,u,u,u,u,u,u,u,u,u]
1517*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2],ymm0[3,4,5],ymm2[6],ymm0[7]
1518*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [255,255,0,0,255,255,255,255,0,0,0,255,255,0,255,255,0,0,255,0,255,255,255,255,255,255,255,0,255,255,255,255]
1519*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendvb %ymm2, %ymm1, %ymm0, %ymm0
1520*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1521*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 42, i32 45, i32 12, i32 13, i32 35, i32 35, i32 60, i32 40, i32 17, i32 22, i32 29, i32 44, i32 33, i32 12, i32 48, i32 51, i32 20, i32 19, i32 52, i32 19, i32 49, i32 54, i32 37, i32 32, i32 48, i32 42, i32 59, i32 7, i32 36, i32 34, i32 36, i32 39>
1522*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1523*9880d681SAndroid Build Coastguard Worker}
1524*9880d681SAndroid Build Coastguard Worker
1525*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_08_08_08_08_08_08_08_08_32_32_32_32_32_32_32_32_40_40_40_40_40_40_40_40(<32 x i8> %a, <32 x i8> %b) {
1526*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_08_08_08_08_08_08_08_08_32_32_32_32_32_32_32_32_40_40_40_40_40_40_40_40:
1527*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1528*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8]
1529*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
1530*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
1531*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
1532*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1533*9880d681SAndroid Build Coastguard Worker;
1534*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_08_08_08_08_08_08_08_08_32_32_32_32_32_32_32_32_40_40_40_40_40_40_40_40:
1535*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1536*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0
1537*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24]
1538*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1539*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 40, i32 40, i32 40, i32 40, i32 40, i32 40, i32 40, i32 40>
1540*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1541*9880d681SAndroid Build Coastguard Worker}
1542*9880d681SAndroid Build Coastguard Worker
1543*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_16_16_16_16_16_16_16_16_24_24_24_24_24_24_24_24_32_32_32_32_32_32_32_32_40_40_40_40_40_40_40_40(<32 x i8> %a, <32 x i8> %b) {
1544*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_16_16_16_16_16_16_16_16_24_24_24_24_24_24_24_24_32_32_32_32_32_32_32_32_40_40_40_40_40_40_40_40:
1545*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1546*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8]
1547*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
1548*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1549*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
1550*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
1551*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1552*9880d681SAndroid Build Coastguard Worker;
1553*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_16_16_16_16_16_16_16_16_24_24_24_24_24_24_24_24_32_32_32_32_32_32_32_32_40_40_40_40_40_40_40_40:
1554*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1555*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[0,1]
1556*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24]
1557*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1558*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 40, i32 40, i32 40, i32 40, i32 40, i32 40, i32 40, i32 40>
1559*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1560*9880d681SAndroid Build Coastguard Worker}
1561*9880d681SAndroid Build Coastguard Worker
1562*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_16_16_16_16_16_16_16_16_24_24_24_24_24_24_24_24_48_48_48_48_48_48_48_48_56_56_56_56_56_56_56_56(<32 x i8> %a, <32 x i8> %b) {
1563*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_16_16_16_16_16_16_16_16_24_24_24_24_24_24_24_24_48_48_48_48_48_48_48_48_56_56_56_56_56_56_56_56:
1564*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1565*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm1
1566*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8]
1567*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
1568*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1569*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
1570*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
1571*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1572*9880d681SAndroid Build Coastguard Worker;
1573*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_16_16_16_16_16_16_16_16_24_24_24_24_24_24_24_24_48_48_48_48_48_48_48_48_56_56_56_56_56_56_56_56:
1574*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1575*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
1576*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24]
1577*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1578*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 56, i32 56, i32 56, i32 56, i32 56, i32 56, i32 56, i32 56>
1579*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1580*9880d681SAndroid Build Coastguard Worker}
1581*9880d681SAndroid Build Coastguard Worker
1582*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_08_08_08_08_08_08_08_08_48_48_48_48_48_48_48_48_56_56_56_56_56_56_56_56(<32 x i8> %a, <32 x i8> %b) {
1583*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_08_08_08_08_08_08_08_08_48_48_48_48_48_48_48_48_56_56_56_56_56_56_56_56:
1584*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1585*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm1
1586*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8]
1587*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm1
1588*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm0
1589*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
1590*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1591*9880d681SAndroid Build Coastguard Worker;
1592*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_08_08_08_08_08_08_08_08_48_48_48_48_48_48_48_48_56_56_56_56_56_56_56_56:
1593*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1594*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1595*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24]
1596*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1597*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 56, i32 56, i32 56, i32 56, i32 56, i32 56, i32 56, i32 56>
1598*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1599*9880d681SAndroid Build Coastguard Worker}
1600*9880d681SAndroid Build Coastguard Worker
1601*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_00_32_01_33_02_34_03_35_04_36_05_37_06_38_07_39_08_40_09_41_10_42_11_43_12_44_13_45_14_46_15_47(<32 x i8> %a, <32 x i8> %b) {
1602*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_00_32_01_33_02_34_03_35_04_36_05_37_06_38_07_39_08_40_09_41_10_42_11_43_12_44_13_45_14_46_15_47:
1603*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1604*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15]
1605*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
1606*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1607*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1608*9880d681SAndroid Build Coastguard Worker;
1609*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_00_32_01_33_02_34_03_35_04_36_05_37_06_38_07_39_08_40_09_41_10_42_11_43_12_44_13_45_14_46_15_47:
1610*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1611*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15]
1612*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
1613*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0
1614*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1615*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 8, i32 40, i32 9, i32 41, i32 10, i32 42, i32 11, i32 43, i32 12, i32 44, i32 13, i32 45, i32 14, i32 46, i32 15, i32 47>
1616*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1617*9880d681SAndroid Build Coastguard Worker}
1618*9880d681SAndroid Build Coastguard Worker
1619*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_32_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_48(<32 x i8> %a) {
1620*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_32_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_48:
1621*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1622*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpslldq {{.*#+}} xmm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm0[0]
1623*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1624*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpslldq {{.*#+}} xmm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm0[0]
1625*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1626*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1627*9880d681SAndroid Build Coastguard Worker;
1628*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_32_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_48:
1629*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1630*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpslldq {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm0[0],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm0[16]
1631*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1632*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> zeroinitializer, <32 x i8> %a, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 32, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 48>
1633*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1634*9880d681SAndroid Build Coastguard Worker}
1635*9880d681SAndroid Build Coastguard Worker
1636*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_47_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_63_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz(<32 x i8> %a) {
1637*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_47_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_63_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz:
1638*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1639*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpsrldq {{.*#+}} xmm1 = xmm0[15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1640*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1641*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpsrldq {{.*#+}} xmm0 = xmm0[15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1642*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1643*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1644*9880d681SAndroid Build Coastguard Worker;
1645*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_47_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_63_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz:
1646*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1647*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpsrldq {{.*#+}} ymm0 = ymm0[15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm0[31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1648*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1649*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> zeroinitializer, <32 x i8> %a, <32 x i32> <i32 47, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 63, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
1650*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1651*9880d681SAndroid Build Coastguard Worker}
1652*9880d681SAndroid Build Coastguard Worker
1653*9880d681SAndroid Build Coastguard Worker;
1654*9880d681SAndroid Build Coastguard Worker; Shuffle to logical bit shifts
1655*9880d681SAndroid Build Coastguard Worker;
1656*9880d681SAndroid Build Coastguard Worker
1657*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_zz_00_zz_02_zz_04_zz_06_zz_08_zz_10_zz_12_zz_14_zz_16_zz_18_zz_20_zz_22_zz_24_zz_26_zz_28_zz_30(<32 x i8> %a) {
1658*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_zz_00_zz_02_zz_04_zz_06_zz_08_zz_10_zz_12_zz_14_zz_16_zz_18_zz_20_zz_22_zz_24_zz_26_zz_28_zz_30:
1659*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1660*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpsllw $8, %xmm0, %xmm1
1661*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1662*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpsllw $8, %xmm0, %xmm0
1663*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1664*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1665*9880d681SAndroid Build Coastguard Worker;
1666*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_zz_00_zz_02_zz_04_zz_06_zz_08_zz_10_zz_12_zz_14_zz_16_zz_18_zz_20_zz_22_zz_24_zz_26_zz_28_zz_30:
1667*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1668*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpsllw $8, %ymm0, %ymm0
1669*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1670*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> zeroinitializer, <32 x i32> <i32 32, i32 0, i32 32, i32 2, i32 32, i32 4, i32 32, i32 6, i32 32, i32 8, i32 32, i32 10, i32 32, i32 12, i32 32, i32 14, i32 32, i32 16, i32 32, i32 18, i32 32, i32 20, i32 32, i32 22, i32 32, i32 24, i32 32, i32 26, i32 32, i32 28, i32 32, i32 30>
1671*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1672*9880d681SAndroid Build Coastguard Worker}
1673*9880d681SAndroid Build Coastguard Worker
1674*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_zz_zz_00_01_zz_zz_04_05_zz_zz_08_09_zz_zz_12_13_zz_zz_16_17_zz_zz_20_21_zz_zz_24_25_zz_zz_28_29(<32 x i8> %a) {
1675*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_zz_zz_00_01_zz_zz_04_05_zz_zz_08_09_zz_zz_12_13_zz_zz_16_17_zz_zz_20_21_zz_zz_24_25_zz_zz_28_29:
1676*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1677*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpslld $16, %xmm0, %xmm1
1678*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1679*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpslld $16, %xmm0, %xmm0
1680*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1681*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1682*9880d681SAndroid Build Coastguard Worker;
1683*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_zz_zz_00_01_zz_zz_04_05_zz_zz_08_09_zz_zz_12_13_zz_zz_16_17_zz_zz_20_21_zz_zz_24_25_zz_zz_28_29:
1684*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1685*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpslld $16, %ymm0, %ymm0
1686*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1687*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> zeroinitializer, <32 x i32> <i32 32, i32 32, i32 0, i32 1, i32 32, i32 32, i32 4, i32 5, i32 32, i32 32, i32 8, i32 9, i32 32, i32 32, i32 12, i32 13, i32 32, i32 32, i32 16, i32 17, i32 32, i32 32, i32 20, i32 21, i32 32, i32 32, i32 24, i32 25, i32 32, i32 32, i32 28, i32 29>
1688*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1689*9880d681SAndroid Build Coastguard Worker}
1690*9880d681SAndroid Build Coastguard Worker
1691*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_zz_zz_zz_zz_zz_zz_00_01_zz_zz_zz_zz_zz_zz_08_09_zz_zz_zz_zz_zz_zz_16_17_zz_zz_zz_zz_zz_zz_24_25(<32 x i8> %a) {
1692*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_zz_zz_zz_zz_zz_zz_00_01_zz_zz_zz_zz_zz_zz_08_09_zz_zz_zz_zz_zz_zz_16_17_zz_zz_zz_zz_zz_zz_24_25:
1693*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1694*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpsllq $48, %xmm0, %xmm1
1695*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1696*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpsllq $48, %xmm0, %xmm0
1697*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1698*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1699*9880d681SAndroid Build Coastguard Worker;
1700*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_zz_zz_zz_zz_zz_zz_00_01_zz_zz_zz_zz_zz_zz_08_09_zz_zz_zz_zz_zz_zz_16_17_zz_zz_zz_zz_zz_zz_24_25:
1701*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1702*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpsllq $48, %ymm0, %ymm0
1703*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1704*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> zeroinitializer, <32 x i32> <i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 0, i32 1, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 8, i32 9, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 16, i32 17, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 24, i32 25>
1705*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1706*9880d681SAndroid Build Coastguard Worker}
1707*9880d681SAndroid Build Coastguard Worker
1708*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_01_zz_03_zz_05_zz_07_zz_09_zz_11_zz_13_zz_15_zz_17_zz_19_zz_21_zz_23_zz_25_zz_27_zz_29_zz_31_zz(<32 x i8> %a) {
1709*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_01_zz_03_zz_05_zz_07_zz_09_zz_11_zz_13_zz_15_zz_17_zz_19_zz_21_zz_23_zz_25_zz_27_zz_29_zz_31_zz:
1710*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1711*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpsrlw $8, %xmm0, %xmm1
1712*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1713*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpsrlw $8, %xmm0, %xmm0
1714*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1715*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1716*9880d681SAndroid Build Coastguard Worker;
1717*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_01_zz_03_zz_05_zz_07_zz_09_zz_11_zz_13_zz_15_zz_17_zz_19_zz_21_zz_23_zz_25_zz_27_zz_29_zz_31_zz:
1718*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1719*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpsrlw $8, %ymm0, %ymm0
1720*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1721*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> zeroinitializer, <32 x i32> <i32 1, i32 32, i32 3, i32 32, i32 5, i32 32, i32 7, i32 32, i32 9, i32 32, i32 11, i32 32, i32 13, i32 32, i32 15, i32 32, i32 17, i32 32, i32 19, i32 32, i32 21, i32 32, i32 23, i32 32, i32 25, i32 32, i32 27, i32 32, i32 29, i32 32, i32 31, i32 32>
1722*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1723*9880d681SAndroid Build Coastguard Worker}
1724*9880d681SAndroid Build Coastguard Worker
1725*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_02_03_zz_zz_06_07_zz_zz_10_11_zz_zz_14_15_zz_zz_18_19_zz_zz_22_23_zz_zz_26_27_zz_zz_30_31_zz_zz(<32 x i8> %a) {
1726*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_02_03_zz_zz_06_07_zz_zz_10_11_zz_zz_14_15_zz_zz_18_19_zz_zz_22_23_zz_zz_26_27_zz_zz_30_31_zz_zz:
1727*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1728*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpsrld $16, %xmm0, %xmm1
1729*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1730*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpsrld $16, %xmm0, %xmm0
1731*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1732*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1733*9880d681SAndroid Build Coastguard Worker;
1734*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_02_03_zz_zz_06_07_zz_zz_10_11_zz_zz_14_15_zz_zz_18_19_zz_zz_22_23_zz_zz_26_27_zz_zz_30_31_zz_zz:
1735*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1736*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpsrld $16, %ymm0, %ymm0
1737*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1738*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> zeroinitializer, <32 x i32> <i32 2, i32 3, i32 32, i32 32, i32 6, i32 7, i32 32, i32 32, i32 10, i32 11, i32 32, i32 32, i32 14, i32 15, i32 32, i32 32, i32 18, i32 19, i32 32, i32 32, i32 22, i32 23, i32 32, i32 32, i32 26, i32 27, i32 32, i32 32, i32 30, i32 31, i32 32, i32 32>
1739*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1740*9880d681SAndroid Build Coastguard Worker}
1741*9880d681SAndroid Build Coastguard Worker
1742*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_07_zz_zz_zz_zz_zz_zz_zz_15_zz_zz_zz_zz_z_zz_zz_23_zz_zz_zz_zz_zz_zz_zz_31_zz_zz_zz_zz_zz_zz_zz(<32 x i8> %a) {
1743*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_07_zz_zz_zz_zz_zz_zz_zz_15_zz_zz_zz_zz_z_zz_zz_23_zz_zz_zz_zz_zz_zz_zz_31_zz_zz_zz_zz_zz_zz_zz:
1744*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1745*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpsrlq $56, %xmm0, %xmm1
1746*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1747*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpsrlq $56, %xmm0, %xmm0
1748*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1749*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1750*9880d681SAndroid Build Coastguard Worker;
1751*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_07_zz_zz_zz_zz_zz_zz_zz_15_zz_zz_zz_zz_z_zz_zz_23_zz_zz_zz_zz_zz_zz_zz_31_zz_zz_zz_zz_zz_zz_zz:
1752*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1753*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpsrlq $56, %ymm0, %ymm0
1754*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1755*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> zeroinitializer, <32 x i32> <i32 7, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 15, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 23, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 31, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32>
1756*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1757*9880d681SAndroid Build Coastguard Worker}
1758*9880d681SAndroid Build Coastguard Worker
1759*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_32_zz_zz_zz_zz_zz_zz_zz_33_zz_zz_zz_zz_zz_zz_zz_34_zz_zz_zz_zz_zz_zz_zz_35_zz_zz_zz_zz_zz_zz_zz(<32 x i8> %a) {
1760*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_32_zz_zz_zz_zz_zz_zz_zz_33_zz_zz_zz_zz_zz_zz_zz_34_zz_zz_zz_zz_zz_zz_zz_35_zz_zz_zz_zz_zz_zz_zz:
1761*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1762*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmovzxbq {{.*#+}} xmm1 = xmm0[0],zero,zero,zero,zero,zero,zero,zero,xmm0[1],zero,zero,zero,zero,zero,zero,zero
1763*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpsrld $16, %xmm0, %xmm0
1764*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmovzxbq {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,zero,zero,zero,zero,xmm0[1],zero,zero,zero,zero,zero,zero,zero
1765*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1766*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1767*9880d681SAndroid Build Coastguard Worker;
1768*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_32_zz_zz_zz_zz_zz_zz_zz_33_zz_zz_zz_zz_zz_zz_zz_34_zz_zz_zz_zz_zz_zz_zz_35_zz_zz_zz_zz_zz_zz_zz:
1769*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1770*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmovzxbq {{.*#+}} ymm0 = xmm0[0],zero,zero,zero,zero,zero,zero,zero,xmm0[1],zero,zero,zero,zero,zero,zero,zero,xmm0[2],zero,zero,zero,zero,zero,zero,zero,xmm0[3],zero,zero,zero,zero,zero,zero,zero
1771*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1772*9880d681SAndroid Build Coastguard Worker
1773*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> zeroinitializer, <32 x i8> %a, <32 x i32> <i32 32, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 33, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 34, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 35, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
1774*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1775*9880d681SAndroid Build Coastguard Worker}
1776*9880d681SAndroid Build Coastguard Worker
1777*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_32_zz_zz_zz_33_zz_zz_zz_34_zz_zz_zz_35_zz_zz_zz_36_zz_zz_zz_37_zz_zz_zz_38_zz_zz_zz_39_zz_zz_zz(<32 x i8> %a) {
1778*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_32_zz_zz_zz_33_zz_zz_zz_34_zz_zz_zz_35_zz_zz_zz_36_zz_zz_zz_37_zz_zz_zz_38_zz_zz_zz_39_zz_zz_zz:
1779*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1780*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmovzxbd {{.*#+}} xmm1 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero
1781*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[1,1,2,3]
1782*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmovzxbd {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero
1783*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1784*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1785*9880d681SAndroid Build Coastguard Worker;
1786*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_32_zz_zz_zz_33_zz_zz_zz_34_zz_zz_zz_35_zz_zz_zz_36_zz_zz_zz_37_zz_zz_zz_38_zz_zz_zz_39_zz_zz_zz:
1787*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1788*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmovzxbd {{.*#+}} ymm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero,xmm0[4],zero,zero,zero,xmm0[5],zero,zero,zero,xmm0[6],zero,zero,zero,xmm0[7],zero,zero,zero
1789*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1790*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> zeroinitializer, <32 x i8> %a, <32 x i32> <i32 32, i32 0, i32 0, i32 0, i32 33, i32 0, i32 0, i32 0, i32 34, i32 0, i32 0, i32 0, i32 35, i32 0, i32 0, i32 0, i32 36, i32 0, i32 0, i32 0, i32 37, i32 0, i32 0, i32 0, i32 38, i32 0, i32 0, i32 0, i32 39, i32 0, i32 0, i32 0>
1791*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1792*9880d681SAndroid Build Coastguard Worker}
1793*9880d681SAndroid Build Coastguard Worker
1794*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_32_zz_33_zz_34_zz_35_zz_36_zz_37_zz_38_zz_39_zz_40_zz_41_zz_42_zz_43_zz_44_zz_45_zz_46_zz_47_zz(<32 x i8> %a) {
1795*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_32_zz_33_zz_34_zz_35_zz_36_zz_37_zz_38_zz_39_zz_40_zz_41_zz_42_zz_43_zz_44_zz_45_zz_46_zz_47_zz:
1796*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1797*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmovzxbw {{.*#+}} xmm1 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero
1798*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[8],zero,xmm0[9],zero,xmm0[10],zero,xmm0[11],zero,xmm0[12],zero,xmm0[13],zero,xmm0[14],zero,xmm0[15],zero
1799*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1800*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1801*9880d681SAndroid Build Coastguard Worker;
1802*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_32_zz_33_zz_34_zz_35_zz_36_zz_37_zz_38_zz_39_zz_40_zz_41_zz_42_zz_43_zz_44_zz_45_zz_46_zz_47_zz:
1803*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1804*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmovzxbw {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero,xmm0[8],zero,xmm0[9],zero,xmm0[10],zero,xmm0[11],zero,xmm0[12],zero,xmm0[13],zero,xmm0[14],zero,xmm0[15],zero
1805*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1806*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> zeroinitializer, <32 x i8> %a, <32 x i32> <i32 32, i32 0, i32 33, i32 0, i32 34, i32 0, i32 35, i32 0, i32 36, i32 0, i32 37, i32 0, i32 38, i32 0, i32 39, i32 0, i32 40, i32 0, i32 41, i32 0, i32 42, i32 0, i32 43, i32 0, i32 44, i32 0, i32 45, i32 0, i32 46, i32 0, i32 47, i32 0>
1807*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1808*9880d681SAndroid Build Coastguard Worker}
1809*9880d681SAndroid Build Coastguard Worker
1810*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_47_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_63_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30(<32 x i8> %a, <32 x i8> %b) {
1811*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_47_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_63_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30:
1812*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1813*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1814*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1815*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpalignr {{.*#+}} xmm2 = xmm2[15],xmm3[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
1816*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpalignr {{.*#+}} xmm0 = xmm1[15],xmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
1817*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1818*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1819*9880d681SAndroid Build Coastguard Worker;
1820*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_47_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_63_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30:
1821*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1822*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpalignr {{.*#+}} ymm0 = ymm1[15],ymm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],ymm1[31],ymm0[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]
1823*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1824*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 47, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 63, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
1825*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1826*9880d681SAndroid Build Coastguard Worker}
1827*9880d681SAndroid Build Coastguard Worker
1828*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_uu_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_63_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30(<32 x i8> %a, <32 x i8> %b) {
1829*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_uu_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_63_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30:
1830*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1831*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm1
1832*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
1833*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpalignr {{.*#+}} xmm1 = xmm1[15],xmm2[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
1834*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpslldq {{.*#+}} xmm0 = zero,xmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
1835*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
1836*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1837*9880d681SAndroid Build Coastguard Worker;
1838*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_uu_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_63_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30:
1839*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1840*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpalignr {{.*#+}} ymm0 = ymm1[15],ymm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],ymm1[31],ymm0[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]
1841*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1842*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 undef, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 63, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
1843*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1844*9880d681SAndroid Build Coastguard Worker}
1845*9880d681SAndroid Build Coastguard Worker
1846*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_47_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_uu_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30(<32 x i8> %a, <32 x i8> %b) {
1847*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_47_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_uu_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30:
1848*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1849*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpalignr {{.*#+}} xmm1 = xmm1[15],xmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
1850*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1851*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpslldq {{.*#+}} xmm0 = zero,xmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
1852*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1853*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1854*9880d681SAndroid Build Coastguard Worker;
1855*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_47_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_uu_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30:
1856*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1857*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpalignr {{.*#+}} ymm0 = ymm1[15],ymm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],ymm1[31],ymm0[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]
1858*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1859*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 47, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 undef, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
1860*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1861*9880d681SAndroid Build Coastguard Worker}
1862*9880d681SAndroid Build Coastguard Worker
1863*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_uu_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_63_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu(<32 x i8> %a, <32 x i8> %b) {
1864*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_uu_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_63_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu:
1865*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1866*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpslldq {{.*#+}} xmm0 = zero,xmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
1867*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm1
1868*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpsrldq {{.*#+}} xmm1 = xmm1[15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1869*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
1870*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1871*9880d681SAndroid Build Coastguard Worker;
1872*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_uu_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_63_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu:
1873*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1874*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpalignr {{.*#+}} ymm0 = ymm1[15],ymm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],ymm1[31],ymm0[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]
1875*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1876*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 undef, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 63, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
1877*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1878*9880d681SAndroid Build Coastguard Worker}
1879*9880d681SAndroid Build Coastguard Worker
1880*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_63_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30(<32 x i8> %a, <32 x i8> %b) {
1881*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_63_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30:
1882*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1883*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm1
1884*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1885*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpalignr {{.*#+}} xmm0 = xmm1[15],xmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
1886*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
1887*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1888*9880d681SAndroid Build Coastguard Worker;
1889*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_63_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30:
1890*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1891*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpalignr {{.*#+}} ymm0 = ymm1[15],ymm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],ymm1[31],ymm0[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]
1892*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1893*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 63, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
1894*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1895*9880d681SAndroid Build Coastguard Worker}
1896*9880d681SAndroid Build Coastguard Worker
1897*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_01_02_03_04_05_06_07_08_09_10_11_12_13_14_15_32_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_48(<32 x i8> %a, <32 x i8> %b) {
1898*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_01_02_03_04_05_06_07_08_09_10_11_12_13_14_15_32_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_48:
1899*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1900*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
1901*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm3
1902*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpalignr {{.*#+}} xmm2 = xmm2[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],xmm3[0]
1903*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpalignr {{.*#+}} xmm0 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],xmm1[0]
1904*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1905*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1906*9880d681SAndroid Build Coastguard Worker;
1907*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_01_02_03_04_05_06_07_08_09_10_11_12_13_14_15_32_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_48:
1908*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1909*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpalignr {{.*#+}} ymm0 = ymm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],ymm1[0],ymm0[17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],ymm1[16]
1910*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1911*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 32, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 48>
1912*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1913*9880d681SAndroid Build Coastguard Worker}
1914*9880d681SAndroid Build Coastguard Worker
1915*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47_00_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63_16(<32 x i8> %a, <32 x i8> %b) {
1916*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47_00_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63_16:
1917*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1918*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1919*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1920*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpalignr {{.*#+}} xmm2 = xmm2[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],xmm3[0]
1921*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpalignr {{.*#+}} xmm0 = xmm1[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],xmm0[0]
1922*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1923*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1924*9880d681SAndroid Build Coastguard Worker;
1925*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47_00_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63_16:
1926*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1927*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpalignr {{.*#+}} ymm0 = ymm1[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],ymm0[0],ymm1[17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],ymm0[16]
1928*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1929*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 00, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 16>
1930*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1931*9880d681SAndroid Build Coastguard Worker}
1932*9880d681SAndroid Build Coastguard Worker
1933*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_15_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_31_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62(<32 x i8> %a, <32 x i8> %b) {
1934*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_15_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_31_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62:
1935*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1936*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
1937*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm3
1938*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpalignr {{.*#+}} xmm2 = xmm2[15],xmm3[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
1939*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpalignr {{.*#+}} xmm0 = xmm0[15],xmm1[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
1940*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1941*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1942*9880d681SAndroid Build Coastguard Worker;
1943*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_15_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_31_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62:
1944*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1945*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpalignr {{.*#+}} ymm0 = ymm0[15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],ymm0[31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]
1946*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1947*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 15, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 31, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62>
1948*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1949*9880d681SAndroid Build Coastguard Worker}
1950*9880d681SAndroid Build Coastguard Worker
1951*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_01_02_03_04_05_06_07_08_09_10_11_12_13_14_15_00_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_16(<32 x i8> %a, <32 x i8> %b) {
1952*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_01_02_03_04_05_06_07_08_09_10_11_12_13_14_15_00_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_16:
1953*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1954*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpalignr {{.*#+}} xmm1 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0]
1955*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1956*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpalignr {{.*#+}} xmm0 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0]
1957*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1958*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1959*9880d681SAndroid Build Coastguard Worker;
1960*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_01_02_03_04_05_06_07_08_09_10_11_12_13_14_15_00_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_16:
1961*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1962*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpalignr {{.*#+}} ymm0 = ymm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,16]
1963*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1964*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 0, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 16>
1965*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1966*9880d681SAndroid Build Coastguard Worker}
1967*9880d681SAndroid Build Coastguard Worker
1968*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_15_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_31_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30(<32 x i8> %a, <32 x i8> %b) {
1969*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_15_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_31_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30:
1970*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1971*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpalignr {{.*#+}} xmm1 = xmm0[15,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
1972*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
1973*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpalignr {{.*#+}} xmm0 = xmm0[15,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
1974*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1975*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1976*9880d681SAndroid Build Coastguard Worker;
1977*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_15_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_31_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30:
1978*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1979*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpalignr {{.*#+}} ymm0 = ymm0[15,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,31,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]
1980*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1981*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 15, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 31, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
1982*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1983*9880d681SAndroid Build Coastguard Worker}
1984*9880d681SAndroid Build Coastguard Worker
1985*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_10_10_10_10_10_10_10_10_10_10_10_10_10_10_10_10(<32 x i8> %a, <32 x i8> %b) {
1986*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_10_10_10_10_10_10_10_10_10_10_10_10_10_10_10_10:
1987*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
1988*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]
1989*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
1990*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1991*9880d681SAndroid Build Coastguard Worker;
1992*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_10_10_10_10_10_10_10_10_10_10_10_10_10_10_10_10:
1993*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
1994*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]
1995*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
1996*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1997*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10>
1998*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
1999*9880d681SAndroid Build Coastguard Worker}
2000*9880d681SAndroid Build Coastguard Worker
2001*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16(<32 x i8> %a, <32 x i8> %b) {
2002*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16:
2003*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
2004*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
2005*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
2006*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm0
2007*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2008*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2009*9880d681SAndroid Build Coastguard Worker;
2010*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16:
2011*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
2012*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vextracti128 $1, %ymm0, %xmm0
2013*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %ymm0
2014*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2015*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
2016*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
2017*9880d681SAndroid Build Coastguard Worker}
2018*9880d681SAndroid Build Coastguard Worker
2019*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_15_15_15_15_15_15_15_15_32_32_32_32_32_32_32_32_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu(<32 x i8> %a, <32 x i8> %b) {
2020*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_15_15_15_15_15_15_15_15_32_32_32_32_32_32_32_32_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu:
2021*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
2022*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[15,15,15,15,15,15,15,15,12,12,13,13,14,14,15,15]
2023*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
2024*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm1[0,0,0,0,4,5,6,7]
2025*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
2026*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2027*9880d681SAndroid Build Coastguard Worker;
2028*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_15_15_15_15_15_15_15_15_32_32_32_32_32_32_32_32_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu:
2029*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
2030*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm1, %xmm1
2031*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[15,15,15,15,15,15,15,15,12,12,13,13,14,14,15,15]
2032*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
2033*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2034*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
2035*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
2036*9880d681SAndroid Build Coastguard Worker}
2037*9880d681SAndroid Build Coastguard Worker
2038*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_15_15_15_15_15_15_15_15_15_15_15_15_15_15_15_15_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu(<32 x i8> %a, <32 x i8> %b) {
2039*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: shuffle_v32i8_15_15_15_15_15_15_15_15_15_15_15_15_15_15_15_15_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu:
2040*9880d681SAndroid Build Coastguard Worker; ALL:       # BB#0:
2041*9880d681SAndroid Build Coastguard Worker; ALL-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
2042*9880d681SAndroid Build Coastguard Worker; ALL-NEXT:    retq
2043*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
2044*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
2045*9880d681SAndroid Build Coastguard Worker}
2046*9880d681SAndroid Build Coastguard Worker
2047*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @shuffle_v32i8_22_22_22_22_22_22_22_22_22_22_22_22_22_22_22_22_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu(<32 x i8> %a, <32 x i8> %b) {
2048*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: shuffle_v32i8_22_22_22_22_22_22_22_22_22_22_22_22_22_22_22_22_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu:
2049*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
2050*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm0
2051*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6]
2052*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2053*9880d681SAndroid Build Coastguard Worker;
2054*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: shuffle_v32i8_22_22_22_22_22_22_22_22_22_22_22_22_22_22_22_22_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu_uu:
2055*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
2056*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vextracti128 $1, %ymm0, %xmm0
2057*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6]
2058*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2059*9880d681SAndroid Build Coastguard Worker  %shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
2060*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %shuffle
2061*9880d681SAndroid Build Coastguard Worker}
2062*9880d681SAndroid Build Coastguard Worker
2063*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @PR28136(<32 x i8> %a0, <32 x i8> %a1) {
2064*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: PR28136:
2065*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
2066*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
2067*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
2068*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [8,8,10,10,12,12,14,14,9,9,11,11,13,13,15,15]
2069*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm0, %xmm3
2070*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
2071*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1],xmm1[2],xmm4[2],xmm1[3],xmm4[3],xmm1[4],xmm4[4],xmm1[5],xmm4[5],xmm1[6],xmm4[6],xmm1[7],xmm4[7]
2072*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm2, %xmm1, %xmm2
2073*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm4 = [255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0]
2074*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpblendvb %xmm4, %xmm3, %xmm2, %xmm2
2075*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm3 = [0,0,2,2,4,4,6,6,1,1,3,3,5,5,7,7]
2076*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm3, %xmm0, %xmm0
2077*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm3, %xmm1, %xmm1
2078*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpblendvb %xmm4, %xmm0, %xmm1, %xmm0
2079*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2080*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2081*9880d681SAndroid Build Coastguard Worker;
2082*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: PR28136:
2083*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
2084*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpunpcklbw {{.*#+}} ymm2 = ymm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23]
2085*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3,0,1]
2086*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[u,u,u,u,u,u,u,u,0,u,1,u,2,u,3,u,20,u,21,u,22,u,23,u,u,u,u,u,u,u,u,u]
2087*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5],ymm2[6,7]
2088*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpunpcklbw {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[4],ymm1[4],ymm0[5],ymm1[5],ymm0[6],ymm1[6],ymm0[7],ymm1[7],ymm0[16],ymm1[16],ymm0[17],ymm1[17],ymm0[18],ymm1[18],ymm0[19],ymm1[19],ymm0[20],ymm1[20],ymm0[21],ymm1[21],ymm0[22],ymm1[22],ymm0[23],ymm1[23]
2089*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3,0,1]
2090*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,0,u,1,u,2,u,3,u,20,u,21,u,22,u,23,u,u,u,u,u,u,u,u]
2091*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5],ymm2[6,7]
2092*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [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]
2093*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
2094*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2095*9880d681SAndroid Build Coastguard Worker  %1 = shufflevector <32 x i8> %a0, <32 x i8> %a1, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50,i32 19, i32 51, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55>
2096*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <32 x i8> %1 to <4 x i64>
2097*9880d681SAndroid Build Coastguard Worker  %3 = shufflevector <4 x i64> %2, <4 x i64> undef, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
2098*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %3
2099*9880d681SAndroid Build Coastguard Worker}
2100*9880d681SAndroid Build Coastguard Worker
2101*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @insert_dup_mem_v32i8_i32(i32* %ptr) {
2102*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: insert_dup_mem_v32i8_i32:
2103*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
2104*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
2105*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
2106*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm0
2107*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2108*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2109*9880d681SAndroid Build Coastguard Worker;
2110*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: insert_dup_mem_v32i8_i32:
2111*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
2112*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb (%rdi), %ymm0
2113*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2114*9880d681SAndroid Build Coastguard Worker  %tmp = load i32, i32* %ptr, align 4
2115*9880d681SAndroid Build Coastguard Worker  %tmp1 = insertelement <4 x i32> zeroinitializer, i32 %tmp, i32 0
2116*9880d681SAndroid Build Coastguard Worker  %tmp2 = bitcast <4 x i32> %tmp1 to <16 x i8>
2117*9880d681SAndroid Build Coastguard Worker  %tmp3 = shufflevector <16 x i8> %tmp2, <16 x i8> undef, <32 x i32> zeroinitializer
2118*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %tmp3
2119*9880d681SAndroid Build Coastguard Worker}
2120*9880d681SAndroid Build Coastguard Worker
2121*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @insert_dup_mem_v32i8_sext_i8(i8* %ptr) {
2122*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: insert_dup_mem_v32i8_sext_i8:
2123*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
2124*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    movsbl (%rdi), %eax
2125*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovd %eax, %xmm0
2126*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm1, %xmm1, %xmm1
2127*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb %xmm1, %xmm0, %xmm0
2128*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2129*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2130*9880d681SAndroid Build Coastguard Worker;
2131*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: insert_dup_mem_v32i8_sext_i8:
2132*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
2133*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb (%rdi), %ymm0
2134*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2135*9880d681SAndroid Build Coastguard Worker  %tmp = load i8, i8* %ptr, align 1
2136*9880d681SAndroid Build Coastguard Worker  %tmp1 = sext i8 %tmp to i32
2137*9880d681SAndroid Build Coastguard Worker  %tmp2 = insertelement <4 x i32> zeroinitializer, i32 %tmp1, i32 0
2138*9880d681SAndroid Build Coastguard Worker  %tmp3 = bitcast <4 x i32> %tmp2 to <16 x i8>
2139*9880d681SAndroid Build Coastguard Worker  %tmp4 = shufflevector <16 x i8> %tmp3, <16 x i8> undef, <32 x i32> zeroinitializer
2140*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %tmp4
2141*9880d681SAndroid Build Coastguard Worker}
2142*9880d681SAndroid Build Coastguard Worker
2143*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @insert_dup_elt1_mem_v32i8_i32(i32* %ptr) {
2144*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: insert_dup_elt1_mem_v32i8_i32:
2145*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
2146*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
2147*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
2148*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2149*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2150*9880d681SAndroid Build Coastguard Worker;
2151*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: insert_dup_elt1_mem_v32i8_i32:
2152*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
2153*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb 1(%rdi), %ymm0
2154*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2155*9880d681SAndroid Build Coastguard Worker  %tmp = load i32, i32* %ptr, align 4
2156*9880d681SAndroid Build Coastguard Worker  %tmp1 = insertelement <4 x i32> zeroinitializer, i32 %tmp, i32 0
2157*9880d681SAndroid Build Coastguard Worker  %tmp2 = bitcast <4 x i32> %tmp1 to <16 x i8>
2158*9880d681SAndroid Build Coastguard Worker  %tmp3 = shufflevector <16 x i8> %tmp2, <16 x i8> undef, <32 x i32> <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
2159*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %tmp3
2160*9880d681SAndroid Build Coastguard Worker}
2161*9880d681SAndroid Build Coastguard Worker
2162*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @insert_dup_elt3_mem_v32i8_i32(i32* %ptr) {
2163*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: insert_dup_elt3_mem_v32i8_i32:
2164*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
2165*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
2166*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3]
2167*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2168*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2169*9880d681SAndroid Build Coastguard Worker;
2170*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: insert_dup_elt3_mem_v32i8_i32:
2171*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
2172*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb 3(%rdi), %ymm0
2173*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2174*9880d681SAndroid Build Coastguard Worker  %tmp = load i32, i32* %ptr, align 4
2175*9880d681SAndroid Build Coastguard Worker  %tmp1 = insertelement <4 x i32> zeroinitializer, i32 %tmp, i32 0
2176*9880d681SAndroid Build Coastguard Worker  %tmp2 = bitcast <4 x i32> %tmp1 to <16 x i8>
2177*9880d681SAndroid Build Coastguard Worker  %tmp3 = shufflevector <16 x i8> %tmp2, <16 x i8> undef, <32 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>
2178*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %tmp3
2179*9880d681SAndroid Build Coastguard Worker}
2180*9880d681SAndroid Build Coastguard Worker
2181*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @insert_dup_elt1_mem_v32i8_sext_i8(i8* %ptr) {
2182*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: insert_dup_elt1_mem_v32i8_sext_i8:
2183*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0:
2184*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    movsbl (%rdi), %eax
2185*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovd %eax, %xmm0
2186*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
2187*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2188*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2189*9880d681SAndroid Build Coastguard Worker;
2190*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: insert_dup_elt1_mem_v32i8_sext_i8:
2191*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0:
2192*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    movsbl (%rdi), %eax
2193*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    shrl $8, %eax
2194*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovd %eax, %xmm0
2195*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastb %xmm0, %ymm0
2196*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2197*9880d681SAndroid Build Coastguard Worker  %tmp = load i8, i8* %ptr, align 1
2198*9880d681SAndroid Build Coastguard Worker  %tmp1 = sext i8 %tmp to i32
2199*9880d681SAndroid Build Coastguard Worker  %tmp2 = insertelement <4 x i32> zeroinitializer, i32 %tmp1, i32 0
2200*9880d681SAndroid Build Coastguard Worker  %tmp3 = bitcast <4 x i32> %tmp2 to <16 x i8>
2201*9880d681SAndroid Build Coastguard Worker  %tmp4 = shufflevector <16 x i8> %tmp3, <16 x i8> undef, <32 x i32> <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
2202*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %tmp4
2203*9880d681SAndroid Build Coastguard Worker}
2204