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