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