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