1*9880d681SAndroid Build Coastguard Worker; RUN: llc -O3 -disable-peephole -mtriple=x86_64-unknown-unknown -mattr=+avx,+xop < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 4*9880d681SAndroid Build Coastguard Workertarget triple = "x86_64-unknown-unknown" 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker; Stack reload folding tests. 7*9880d681SAndroid Build Coastguard Worker; 8*9880d681SAndroid Build Coastguard Worker; By including a nop call with sideeffects we can force a partial register spill of the 9*9880d681SAndroid Build Coastguard Worker; relevant registers and check that the reload is correctly folded into the instruction. 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @stack_fold_vfrczpd(<2 x double> %a0) { 12*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vfrczpd 13*9880d681SAndroid Build Coastguard Worker ;CHECK: vfrczpd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 14*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 15*9880d681SAndroid Build Coastguard Worker %2 = call <2 x double> @llvm.x86.xop.vfrcz.pd(<2 x double> %a0) 16*9880d681SAndroid Build Coastguard Worker ret <2 x double> %2 17*9880d681SAndroid Build Coastguard Worker} 18*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.xop.vfrcz.pd(<2 x double>) nounwind readnone 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @stack_fold_vfrczpd_ymm(<4 x double> %a0) { 21*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vfrczpd_ymm 22*9880d681SAndroid Build Coastguard Worker ;CHECK: vfrczpd {{-?[0-9]*}}(%rsp), {{%ymm[0-9][0-9]*}} {{.*#+}} 32-byte Folded Reload 23*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 24*9880d681SAndroid Build Coastguard Worker %2 = call <4 x double> @llvm.x86.xop.vfrcz.pd.256(<4 x double> %a0) 25*9880d681SAndroid Build Coastguard Worker ret <4 x double> %2 26*9880d681SAndroid Build Coastguard Worker} 27*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.xop.vfrcz.pd.256(<4 x double>) nounwind readnone 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @stack_fold_vfrczps(<4 x float> %a0) { 30*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vfrczps 31*9880d681SAndroid Build Coastguard Worker ;CHECK: vfrczps {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 32*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 33*9880d681SAndroid Build Coastguard Worker %2 = call <4 x float> @llvm.x86.xop.vfrcz.ps(<4 x float> %a0) 34*9880d681SAndroid Build Coastguard Worker ret <4 x float> %2 35*9880d681SAndroid Build Coastguard Worker} 36*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.xop.vfrcz.ps(<4 x float>) nounwind readnone 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @stack_fold_vfrczps_ymm(<8 x float> %a0) { 39*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vfrczps_ymm 40*9880d681SAndroid Build Coastguard Worker ;CHECK: vfrczps {{-?[0-9]*}}(%rsp), {{%ymm[0-9][0-9]*}} {{.*#+}} 32-byte Folded Reload 41*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 42*9880d681SAndroid Build Coastguard Worker %2 = call <8 x float> @llvm.x86.xop.vfrcz.ps.256(<8 x float> %a0) 43*9880d681SAndroid Build Coastguard Worker ret <8 x float> %2 44*9880d681SAndroid Build Coastguard Worker} 45*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.xop.vfrcz.ps.256(<8 x float>) nounwind readnone 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @stack_fold_vfrczsd(<2 x double> %a0) { 48*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vfrczsd 49*9880d681SAndroid Build Coastguard Worker ;CHECK: vfrczsd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 50*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 51*9880d681SAndroid Build Coastguard Worker %2 = call <2 x double> @llvm.x86.xop.vfrcz.sd(<2 x double> %a0) 52*9880d681SAndroid Build Coastguard Worker ret <2 x double> %2 53*9880d681SAndroid Build Coastguard Worker} 54*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.xop.vfrcz.sd(<2 x double>) nounwind readnone 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @stack_fold_vfrczss(<4 x float> %a0) { 57*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vfrczss 58*9880d681SAndroid Build Coastguard Worker ;CHECK: vfrczss {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 59*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 60*9880d681SAndroid Build Coastguard Worker %2 = call <4 x float> @llvm.x86.xop.vfrcz.ss(<4 x float> %a0) 61*9880d681SAndroid Build Coastguard Worker ret <4 x float> %2 62*9880d681SAndroid Build Coastguard Worker} 63*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.xop.vfrcz.ss(<4 x float>) nounwind readnone 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vpcmov_rm(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2) { 66*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpcmov_rm 67*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmov {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 68*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 69*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vpcmov(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2) 70*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 71*9880d681SAndroid Build Coastguard Worker} 72*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vpcmov_mr(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2) { 73*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpcmov_mr 74*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmov {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 75*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 76*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vpcmov(<2 x i64> %a0, <2 x i64> %a2, <2 x i64> %a1) 77*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 78*9880d681SAndroid Build Coastguard Worker} 79*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vpcmov(<2 x i64>, <2 x i64>, <2 x i64>) nounwind readnone 80*9880d681SAndroid Build Coastguard Worker 81*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @stack_fold_vpcmov_rm_ymm(<4 x i64> %a0, <4 x i64> %a1, <4 x i64> %a2) { 82*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpcmov_rm_ymm 83*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmov {{-?[0-9]*}}(%rsp), {{%ymm[0-9][0-9]*}}, {{%ymm[0-9][0-9]*}}, {{%ymm[0-9][0-9]*}} {{.*#+}} 32-byte Folded Reload 84*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 85*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i64> @llvm.x86.xop.vpcmov.256(<4 x i64> %a0, <4 x i64> %a1, <4 x i64> %a2) 86*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %2 87*9880d681SAndroid Build Coastguard Worker} 88*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @stack_fold_vpcmov_mr_ymm(<4 x i64> %a0, <4 x i64> %a1, <4 x i64> %a2) { 89*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpcmov_mr_ymm 90*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmov {{%ymm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%ymm[0-9][0-9]*}}, {{%ymm[0-9][0-9]*}} {{.*#+}} 32-byte Folded Reload 91*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 92*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i64> @llvm.x86.xop.vpcmov.256(<4 x i64> %a0, <4 x i64> %a2, <4 x i64> %a1) 93*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %2 94*9880d681SAndroid Build Coastguard Worker} 95*9880d681SAndroid Build Coastguard Workerdeclare <4 x i64> @llvm.x86.xop.vpcmov.256(<4 x i64>, <4 x i64>, <4 x i64>) nounwind readnone 96*9880d681SAndroid Build Coastguard Worker 97*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_vpcomb(<16 x i8> %a0, <16 x i8> %a1) { 98*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpcomb 99*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcomltb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 100*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 101*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.xop.vpcomb(<16 x i8> %a0, <16 x i8> %a1, i8 0) 102*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 103*9880d681SAndroid Build Coastguard Worker} 104*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.xop.vpcomb(<16 x i8>, <16 x i8>, i8) nounwind readnone 105*9880d681SAndroid Build Coastguard Worker 106*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vpcomd(<4 x i32> %a0, <4 x i32> %a1) { 107*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpcomd 108*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcomltd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 109*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 110*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vpcomd(<4 x i32> %a0, <4 x i32> %a1, i8 0) 111*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 112*9880d681SAndroid Build Coastguard Worker} 113*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vpcomd(<4 x i32>, <4 x i32>, i8) nounwind readnone 114*9880d681SAndroid Build Coastguard Worker 115*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vpcomq(<2 x i64> %a0, <2 x i64> %a1) { 116*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpcomq 117*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcomltq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 118*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 119*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vpcomq(<2 x i64> %a0, <2 x i64> %a1, i8 0) 120*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 121*9880d681SAndroid Build Coastguard Worker} 122*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vpcomq(<2 x i64>, <2 x i64>, i8) nounwind readnone 123*9880d681SAndroid Build Coastguard Worker 124*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_vpcomub(<16 x i8> %a0, <16 x i8> %a1) { 125*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpcomub 126*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcomltub {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 127*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 128*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.xop.vpcomub(<16 x i8> %a0, <16 x i8> %a1, i8 0) 129*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 130*9880d681SAndroid Build Coastguard Worker} 131*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.xop.vpcomub(<16 x i8>, <16 x i8>, i8) nounwind readnone 132*9880d681SAndroid Build Coastguard Worker 133*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vpcomud(<4 x i32> %a0, <4 x i32> %a1) { 134*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpcomud 135*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcomltud {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 136*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 137*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vpcomud(<4 x i32> %a0, <4 x i32> %a1, i8 0) 138*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 139*9880d681SAndroid Build Coastguard Worker} 140*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vpcomud(<4 x i32>, <4 x i32>, i8) nounwind readnone 141*9880d681SAndroid Build Coastguard Worker 142*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vpcomuq(<2 x i64> %a0, <2 x i64> %a1) { 143*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpcomuq 144*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcomltuq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 145*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 146*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vpcomuq(<2 x i64> %a0, <2 x i64> %a1, i8 0) 147*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 148*9880d681SAndroid Build Coastguard Worker} 149*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vpcomuq(<2 x i64>, <2 x i64>, i8) nounwind readnone 150*9880d681SAndroid Build Coastguard Worker 151*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_vpcomuw(<8 x i16> %a0, <8 x i16> %a1) { 152*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpcomuw 153*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcomltuw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 154*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 155*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.xop.vpcomuw(<8 x i16> %a0, <8 x i16> %a1, i8 0) 156*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 157*9880d681SAndroid Build Coastguard Worker} 158*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.xop.vpcomuw(<8 x i16>, <8 x i16>, i8) nounwind readnone 159*9880d681SAndroid Build Coastguard Worker 160*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_vpcomw(<8 x i16> %a0, <8 x i16> %a1) { 161*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpcomw 162*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcomltw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 163*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 164*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.xop.vpcomw(<8 x i16> %a0, <8 x i16> %a1, i8 0) 165*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 166*9880d681SAndroid Build Coastguard Worker} 167*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.xop.vpcomw(<8 x i16>, <8 x i16>, i8) nounwind readnone 168*9880d681SAndroid Build Coastguard Worker 169*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @stack_fold_vpermil2pd_rm(<2 x double> %a0, <2 x double> %a1, <2 x i64> %a2) { 170*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpermil2pd_rm 171*9880d681SAndroid Build Coastguard Worker ;CHECK: vpermil2pd $0, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 172*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 173*9880d681SAndroid Build Coastguard Worker %2 = call <2 x double> @llvm.x86.xop.vpermil2pd(<2 x double> %a0, <2 x double> %a1, <2 x i64> %a2, i8 0) 174*9880d681SAndroid Build Coastguard Worker ret <2 x double> %2 175*9880d681SAndroid Build Coastguard Worker} 176*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @stack_fold_vpermil2pd_mr(<2 x double> %a0, <2 x i64> %a1, <2 x double> %a2) { 177*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpermil2pd_mr 178*9880d681SAndroid Build Coastguard Worker ;CHECK: vpermil2pd $0, {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 179*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 180*9880d681SAndroid Build Coastguard Worker %2 = call <2 x double> @llvm.x86.xop.vpermil2pd(<2 x double> %a0, <2 x double> %a2, <2 x i64> %a1, i8 0) 181*9880d681SAndroid Build Coastguard Worker ret <2 x double> %2 182*9880d681SAndroid Build Coastguard Worker} 183*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.x86.xop.vpermil2pd(<2 x double>, <2 x double>, <2 x i64>, i8) nounwind readnone 184*9880d681SAndroid Build Coastguard Worker 185*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @stack_fold_vpermil2pd_rm_ymm(<4 x double> %a0, <4 x double> %a1, <4 x i64> %a2) { 186*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpermil2pd_rm 187*9880d681SAndroid Build Coastguard Worker ;CHECK: vpermil2pd $0, {{-?[0-9]*}}(%rsp), {{%ymm[0-9][0-9]*}}, {{%ymm[0-9][0-9]*}}, {{%ymm[0-9][0-9]*}} {{.*#+}} 32-byte Folded Reload 188*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 189*9880d681SAndroid Build Coastguard Worker %2 = call <4 x double> @llvm.x86.xop.vpermil2pd.256(<4 x double> %a0, <4 x double> %a1, <4 x i64> %a2, i8 0) 190*9880d681SAndroid Build Coastguard Worker ret <4 x double> %2 191*9880d681SAndroid Build Coastguard Worker} 192*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @stack_fold_vpermil2pd_mr_ymm(<4 x double> %a0, <4 x i64> %a1, <4 x double> %a2) { 193*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpermil2pd_mr 194*9880d681SAndroid Build Coastguard Worker ;CHECK: vpermil2pd $0, {{%ymm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%ymm[0-9][0-9]*}}, {{%ymm[0-9][0-9]*}} {{.*#+}} 32-byte Folded Reload 195*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 196*9880d681SAndroid Build Coastguard Worker %2 = call <4 x double> @llvm.x86.xop.vpermil2pd.256(<4 x double> %a0, <4 x double> %a2, <4 x i64> %a1, i8 0) 197*9880d681SAndroid Build Coastguard Worker ret <4 x double> %2 198*9880d681SAndroid Build Coastguard Worker} 199*9880d681SAndroid Build Coastguard Workerdeclare <4 x double> @llvm.x86.xop.vpermil2pd.256(<4 x double>, <4 x double>, <4 x i64>, i8) nounwind readnone 200*9880d681SAndroid Build Coastguard Worker 201*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @stack_fold_vpermil2ps_rm(<4 x float> %a0, <4 x float> %a1, <4 x i32> %a2) { 202*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpermil2ps_rm 203*9880d681SAndroid Build Coastguard Worker ;CHECK: vpermil2ps $0, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 204*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 205*9880d681SAndroid Build Coastguard Worker %2 = call <4 x float> @llvm.x86.xop.vpermil2ps(<4 x float> %a0, <4 x float> %a1, <4 x i32> %a2, i8 0) 206*9880d681SAndroid Build Coastguard Worker ret <4 x float> %2 207*9880d681SAndroid Build Coastguard Worker} 208*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @stack_fold_vpermil2ps_mr(<4 x float> %a0, <4 x i32> %a1, <4 x float> %a2) { 209*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpermil2ps_mr 210*9880d681SAndroid Build Coastguard Worker ;CHECK: vpermil2ps $0, {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 211*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 212*9880d681SAndroid Build Coastguard Worker %2 = call <4 x float> @llvm.x86.xop.vpermil2ps(<4 x float> %a0, <4 x float> %a2, <4 x i32> %a1, i8 0) 213*9880d681SAndroid Build Coastguard Worker ret <4 x float> %2 214*9880d681SAndroid Build Coastguard Worker} 215*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.xop.vpermil2ps(<4 x float>, <4 x float>, <4 x i32>, i8) nounwind readnone 216*9880d681SAndroid Build Coastguard Worker 217*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @stack_fold_vpermil2ps_rm_ymm(<8 x float> %a0, <8 x float> %a1, <8 x i32> %a2) { 218*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpermil2ps_rm 219*9880d681SAndroid Build Coastguard Worker ;CHECK: vpermil2ps $0, {{-?[0-9]*}}(%rsp), {{%ymm[0-9][0-9]*}}, {{%ymm[0-9][0-9]*}}, {{%ymm[0-9][0-9]*}} {{.*#+}} 32-byte Folded Reload 220*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 221*9880d681SAndroid Build Coastguard Worker %2 = call <8 x float> @llvm.x86.xop.vpermil2ps.256(<8 x float> %a0, <8 x float> %a1, <8 x i32> %a2, i8 0) 222*9880d681SAndroid Build Coastguard Worker ret <8 x float> %2 223*9880d681SAndroid Build Coastguard Worker} 224*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @stack_fold_vpermil2ps_mr_ymm(<8 x float> %a0, <8 x i32> %a1, <8 x float> %a2) { 225*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpermil2ps_mr 226*9880d681SAndroid Build Coastguard Worker ;CHECK: vpermil2ps $0, {{%ymm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%ymm[0-9][0-9]*}}, {{%ymm[0-9][0-9]*}} {{.*#+}} 32-byte Folded Reload 227*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 228*9880d681SAndroid Build Coastguard Worker %2 = call <8 x float> @llvm.x86.xop.vpermil2ps.256(<8 x float> %a0, <8 x float> %a2, <8 x i32> %a1, i8 0) 229*9880d681SAndroid Build Coastguard Worker ret <8 x float> %2 230*9880d681SAndroid Build Coastguard Worker} 231*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.xop.vpermil2ps.256(<8 x float>, <8 x float>, <8 x i32>, i8) nounwind readnone 232*9880d681SAndroid Build Coastguard Worker 233*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vphaddbd(<16 x i8> %a0) { 234*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vphaddbd 235*9880d681SAndroid Build Coastguard Worker ;CHECK: vphaddbd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 236*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 237*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vphaddbd(<16 x i8> %a0) 238*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 239*9880d681SAndroid Build Coastguard Worker} 240*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vphaddbd(<16 x i8>) nounwind readnone 241*9880d681SAndroid Build Coastguard Worker 242*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vphaddbq(<16 x i8> %a0) { 243*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vphaddbq 244*9880d681SAndroid Build Coastguard Worker ;CHECK: vphaddbq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 245*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 246*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vphaddbq(<16 x i8> %a0) 247*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 248*9880d681SAndroid Build Coastguard Worker} 249*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vphaddbq(<16 x i8>) nounwind readnone 250*9880d681SAndroid Build Coastguard Worker 251*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_vphaddbw(<16 x i8> %a0) { 252*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vphaddbw 253*9880d681SAndroid Build Coastguard Worker ;CHECK: vphaddbw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 254*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 255*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.xop.vphaddbw(<16 x i8> %a0) 256*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 257*9880d681SAndroid Build Coastguard Worker} 258*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.xop.vphaddbw(<16 x i8>) nounwind readnone 259*9880d681SAndroid Build Coastguard Worker 260*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vphadddq(<4 x i32> %a0) { 261*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vphadddq 262*9880d681SAndroid Build Coastguard Worker ;CHECK: vphadddq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 263*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 264*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vphadddq(<4 x i32> %a0) 265*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 266*9880d681SAndroid Build Coastguard Worker} 267*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vphadddq(<4 x i32>) nounwind readnone 268*9880d681SAndroid Build Coastguard Worker 269*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vphaddubd(<16 x i8> %a0) { 270*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vphaddubd 271*9880d681SAndroid Build Coastguard Worker ;CHECK: vphaddubd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 272*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 273*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vphaddubd(<16 x i8> %a0) 274*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 275*9880d681SAndroid Build Coastguard Worker} 276*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vphaddubd(<16 x i8>) nounwind readnone 277*9880d681SAndroid Build Coastguard Worker 278*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vphaddubq(<16 x i8> %a0) { 279*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vphaddubq 280*9880d681SAndroid Build Coastguard Worker ;CHECK: vphaddubq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 281*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 282*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vphaddubq(<16 x i8> %a0) 283*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 284*9880d681SAndroid Build Coastguard Worker} 285*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vphaddubq(<16 x i8>) nounwind readnone 286*9880d681SAndroid Build Coastguard Worker 287*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_vphaddubw(<16 x i8> %a0) { 288*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vphaddubw 289*9880d681SAndroid Build Coastguard Worker ;CHECK: vphaddubw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 290*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 291*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.xop.vphaddubw(<16 x i8> %a0) 292*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 293*9880d681SAndroid Build Coastguard Worker} 294*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.xop.vphaddubw(<16 x i8>) nounwind readnone 295*9880d681SAndroid Build Coastguard Worker 296*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vphaddudq(<4 x i32> %a0) { 297*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vphaddudq 298*9880d681SAndroid Build Coastguard Worker ;CHECK: vphaddudq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 299*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 300*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vphaddudq(<4 x i32> %a0) 301*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 302*9880d681SAndroid Build Coastguard Worker} 303*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vphaddudq(<4 x i32>) nounwind readnone 304*9880d681SAndroid Build Coastguard Worker 305*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vphadduwd(<8 x i16> %a0) { 306*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vphadduwd 307*9880d681SAndroid Build Coastguard Worker ;CHECK: vphadduwd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 308*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 309*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vphadduwd(<8 x i16> %a0) 310*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 311*9880d681SAndroid Build Coastguard Worker} 312*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vphadduwd(<8 x i16>) nounwind readnone 313*9880d681SAndroid Build Coastguard Worker 314*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vphadduwq(<8 x i16> %a0) { 315*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vphadduwq 316*9880d681SAndroid Build Coastguard Worker ;CHECK: vphadduwq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 317*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 318*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vphadduwq(<8 x i16> %a0) 319*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 320*9880d681SAndroid Build Coastguard Worker} 321*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vphadduwq(<8 x i16>) nounwind readnone 322*9880d681SAndroid Build Coastguard Worker 323*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vphaddwd(<8 x i16> %a0) { 324*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vphaddwd 325*9880d681SAndroid Build Coastguard Worker ;CHECK: vphaddwd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 326*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 327*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vphaddwd(<8 x i16> %a0) 328*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 329*9880d681SAndroid Build Coastguard Worker} 330*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vphaddwd(<8 x i16>) nounwind readnone 331*9880d681SAndroid Build Coastguard Worker 332*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vphaddwq(<8 x i16> %a0) { 333*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vphaddwq 334*9880d681SAndroid Build Coastguard Worker ;CHECK: vphaddwq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 335*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 336*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vphaddwq(<8 x i16> %a0) 337*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 338*9880d681SAndroid Build Coastguard Worker} 339*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vphaddwq(<8 x i16>) nounwind readnone 340*9880d681SAndroid Build Coastguard Worker 341*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_vphsubbw(<16 x i8> %a0) { 342*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vphsubbw 343*9880d681SAndroid Build Coastguard Worker ;CHECK: vphsubbw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 344*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 345*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.xop.vphsubbw(<16 x i8> %a0) 346*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 347*9880d681SAndroid Build Coastguard Worker} 348*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.xop.vphsubbw(<16 x i8>) nounwind readnone 349*9880d681SAndroid Build Coastguard Worker 350*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vphsubdq(<4 x i32> %a0) { 351*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vphsubdq 352*9880d681SAndroid Build Coastguard Worker ;CHECK: vphsubdq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 353*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 354*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vphsubdq(<4 x i32> %a0) 355*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 356*9880d681SAndroid Build Coastguard Worker} 357*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vphsubdq(<4 x i32>) nounwind readnone 358*9880d681SAndroid Build Coastguard Worker 359*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vphsubwd(<8 x i16> %a0) { 360*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vphsubwd 361*9880d681SAndroid Build Coastguard Worker ;CHECK: vphsubwd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 362*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 363*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vphsubwd(<8 x i16> %a0) 364*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 365*9880d681SAndroid Build Coastguard Worker} 366*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vphsubwd(<8 x i16>) nounwind readnone 367*9880d681SAndroid Build Coastguard Worker 368*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vpmacsdd(<4 x i32> %a0, <4 x i32> %a1, <4 x i32> %a2) { 369*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpmacsdd 370*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmacsdd {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 371*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 372*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vpmacsdd(<4 x i32> %a0, <4 x i32> %a1, <4 x i32> %a2) 373*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 374*9880d681SAndroid Build Coastguard Worker} 375*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vpmacsdd(<4 x i32>, <4 x i32>, <4 x i32>) nounwind readnone 376*9880d681SAndroid Build Coastguard Worker 377*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vpmacsdqh(<4 x i32> %a0, <4 x i32> %a1, <2 x i64> %a2) { 378*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpmacsdqh 379*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmacsdqh {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 380*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 381*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vpmacsdqh(<4 x i32> %a0, <4 x i32> %a1, <2 x i64> %a2) 382*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 383*9880d681SAndroid Build Coastguard Worker} 384*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vpmacsdqh(<4 x i32>, <4 x i32>, <2 x i64>) nounwind readnone 385*9880d681SAndroid Build Coastguard Worker 386*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vpmacsdql(<4 x i32> %a0, <4 x i32> %a1, <2 x i64> %a2) { 387*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpmacsdql 388*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmacsdql {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 389*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 390*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vpmacsdql(<4 x i32> %a0, <4 x i32> %a1, <2 x i64> %a2) 391*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 392*9880d681SAndroid Build Coastguard Worker} 393*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vpmacsdql(<4 x i32>, <4 x i32>, <2 x i64>) nounwind readnone 394*9880d681SAndroid Build Coastguard Worker 395*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vpmacssdd(<4 x i32> %a0, <4 x i32> %a1, <4 x i32> %a2) { 396*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpmacssdd 397*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmacssdd {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 398*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 399*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vpmacssdd(<4 x i32> %a0, <4 x i32> %a1, <4 x i32> %a2) 400*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 401*9880d681SAndroid Build Coastguard Worker} 402*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vpmacssdd(<4 x i32>, <4 x i32>, <4 x i32>) nounwind readnone 403*9880d681SAndroid Build Coastguard Worker 404*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vpmacssdqh(<4 x i32> %a0, <4 x i32> %a1, <2 x i64> %a2) { 405*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpmacssdqh 406*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmacssdqh {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 407*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 408*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vpmacssdqh(<4 x i32> %a0, <4 x i32> %a1, <2 x i64> %a2) 409*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 410*9880d681SAndroid Build Coastguard Worker} 411*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vpmacssdqh(<4 x i32>, <4 x i32>, <2 x i64>) nounwind readnone 412*9880d681SAndroid Build Coastguard Worker 413*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vpmacssdql(<4 x i32> %a0, <4 x i32> %a1, <2 x i64> %a2) { 414*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpmacssdql 415*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmacssdql {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 416*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 417*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vpmacssdql(<4 x i32> %a0, <4 x i32> %a1, <2 x i64> %a2) 418*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 419*9880d681SAndroid Build Coastguard Worker} 420*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vpmacssdql(<4 x i32>, <4 x i32>, <2 x i64>) nounwind readnone 421*9880d681SAndroid Build Coastguard Worker 422*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vpmacsswd(<8 x i16> %a0, <8 x i16> %a1, <4 x i32> %a2) { 423*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpmacsswd 424*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmacsswd {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 425*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 426*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vpmacsswd(<8 x i16> %a0, <8 x i16> %a1, <4 x i32> %a2) 427*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 428*9880d681SAndroid Build Coastguard Worker} 429*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vpmacsswd(<8 x i16>, <8 x i16>, <4 x i32>) nounwind readnone 430*9880d681SAndroid Build Coastguard Worker 431*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_vpmacssww(<8 x i16> %a0, <8 x i16> %a1, <8 x i16> %a2) { 432*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpmacssww 433*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmacssww {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 434*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 435*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.xop.vpmacssww(<8 x i16> %a0, <8 x i16> %a1, <8 x i16> %a2) 436*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 437*9880d681SAndroid Build Coastguard Worker} 438*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.xop.vpmacssww(<8 x i16>, <8 x i16>, <8 x i16>) nounwind readnone 439*9880d681SAndroid Build Coastguard Worker 440*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vpmacswd(<8 x i16> %a0, <8 x i16> %a1, <4 x i32> %a2) { 441*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpmacswd 442*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmacswd {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 443*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 444*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vpmacswd(<8 x i16> %a0, <8 x i16> %a1, <4 x i32> %a2) 445*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 446*9880d681SAndroid Build Coastguard Worker} 447*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vpmacswd(<8 x i16>, <8 x i16>, <4 x i32>) nounwind readnone 448*9880d681SAndroid Build Coastguard Worker 449*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_vpmacsww(<8 x i16> %a0, <8 x i16> %a1, <8 x i16> %a2) { 450*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpmacsww 451*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmacsww {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 452*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 453*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.xop.vpmacsww(<8 x i16> %a0, <8 x i16> %a1, <8 x i16> %a2) 454*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 455*9880d681SAndroid Build Coastguard Worker} 456*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.xop.vpmacsww(<8 x i16>, <8 x i16>, <8 x i16>) nounwind readnone 457*9880d681SAndroid Build Coastguard Worker 458*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vpmadcsswd(<8 x i16> %a0, <8 x i16> %a1, <4 x i32> %a2) { 459*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpmadcsswd 460*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmadcsswd {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 461*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 462*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vpmadcsswd(<8 x i16> %a0, <8 x i16> %a1, <4 x i32> %a2) 463*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 464*9880d681SAndroid Build Coastguard Worker} 465*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vpmadcsswd(<8 x i16>, <8 x i16>, <4 x i32>) nounwind readnone 466*9880d681SAndroid Build Coastguard Worker 467*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vpmadcswd(<8 x i16> %a0, <8 x i16> %a1, <4 x i32> %a2) { 468*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpmadcswd 469*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmadcswd {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 470*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 471*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vpmadcswd(<8 x i16> %a0, <8 x i16> %a1, <4 x i32> %a2) 472*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 473*9880d681SAndroid Build Coastguard Worker} 474*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vpmadcswd(<8 x i16>, <8 x i16>, <4 x i32>) nounwind readnone 475*9880d681SAndroid Build Coastguard Worker 476*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_vpperm_rm(<16 x i8> %a0, <16 x i8> %a1, <16 x i8> %a2) { 477*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpperm_rm 478*9880d681SAndroid Build Coastguard Worker ;CHECK: vpperm {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 479*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 480*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.xop.vpperm(<16 x i8> %a0, <16 x i8> %a1, <16 x i8> %a2) 481*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 482*9880d681SAndroid Build Coastguard Worker} 483*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_vpperm_mr(<16 x i8> %a0, <16 x i8> %a1, <16 x i8> %a2) { 484*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpperm_mr 485*9880d681SAndroid Build Coastguard Worker ;CHECK: vpperm {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 486*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 487*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.xop.vpperm(<16 x i8> %a0, <16 x i8> %a2, <16 x i8> %a1) 488*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 489*9880d681SAndroid Build Coastguard Worker} 490*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.xop.vpperm(<16 x i8>, <16 x i8>, <16 x i8>) nounwind readnone 491*9880d681SAndroid Build Coastguard Worker 492*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_vprotb(<16 x i8> %a0) { 493*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vprotb 494*9880d681SAndroid Build Coastguard Worker ;CHECK: vprotb $7, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 495*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 496*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.xop.vprotbi(<16 x i8> %a0, i8 7) 497*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 498*9880d681SAndroid Build Coastguard Worker} 499*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.xop.vprotbi(<16 x i8>, i8) nounwind readnone 500*9880d681SAndroid Build Coastguard Worker 501*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_vprotb_rm(<16 x i8> %a0, <16 x i8> %a1) { 502*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vprotb_rm 503*9880d681SAndroid Build Coastguard Worker ;CHECK: vprotb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 504*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 505*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.xop.vprotb(<16 x i8> %a0, <16 x i8> %a1) 506*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 507*9880d681SAndroid Build Coastguard Worker} 508*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_vprotb_mr(<16 x i8> %a0, <16 x i8> %a1) { 509*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vprotb_mr 510*9880d681SAndroid Build Coastguard Worker ;CHECK: vprotb {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 511*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 512*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.xop.vprotb(<16 x i8> %a1, <16 x i8> %a0) 513*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 514*9880d681SAndroid Build Coastguard Worker} 515*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.xop.vprotb(<16 x i8>, <16 x i8>) nounwind readnone 516*9880d681SAndroid Build Coastguard Worker 517*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vprotd(<4 x i32> %a0) { 518*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vprotd 519*9880d681SAndroid Build Coastguard Worker ;CHECK: vprotd $7, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 520*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 521*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vprotdi(<4 x i32> %a0, i8 7) 522*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 523*9880d681SAndroid Build Coastguard Worker} 524*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vprotdi(<4 x i32>, i8) nounwind readnone 525*9880d681SAndroid Build Coastguard Worker 526*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vprotd_rm(<4 x i32> %a0, <4 x i32> %a1) { 527*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vprotd_rm 528*9880d681SAndroid Build Coastguard Worker ;CHECK: vprotd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 529*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 530*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vprotd(<4 x i32> %a0, <4 x i32> %a1) 531*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 532*9880d681SAndroid Build Coastguard Worker} 533*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vprotd_mr(<4 x i32> %a0, <4 x i32> %a1) { 534*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vprotd_mr 535*9880d681SAndroid Build Coastguard Worker ;CHECK: vprotd {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 536*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 537*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vprotd(<4 x i32> %a1, <4 x i32> %a0) 538*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 539*9880d681SAndroid Build Coastguard Worker} 540*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vprotd(<4 x i32>, <4 x i32>) nounwind readnone 541*9880d681SAndroid Build Coastguard Worker 542*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vprotq(<2 x i64> %a0) { 543*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vprotq 544*9880d681SAndroid Build Coastguard Worker ;CHECK: vprotq $7, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 545*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 546*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vprotqi(<2 x i64> %a0, i8 7) 547*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 548*9880d681SAndroid Build Coastguard Worker} 549*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vprotqi(<2 x i64>, i8) nounwind readnone 550*9880d681SAndroid Build Coastguard Worker 551*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vprotq_rm(<2 x i64> %a0, <2 x i64> %a1) { 552*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vprotq_rm 553*9880d681SAndroid Build Coastguard Worker ;CHECK: vprotq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 554*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 555*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vprotq(<2 x i64> %a0, <2 x i64> %a1) 556*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 557*9880d681SAndroid Build Coastguard Worker} 558*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vprotq_mr(<2 x i64> %a0, <2 x i64> %a1) { 559*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vprotq_mr 560*9880d681SAndroid Build Coastguard Worker ;CHECK: vprotq {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 561*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 562*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vprotq(<2 x i64> %a1, <2 x i64> %a0) 563*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 564*9880d681SAndroid Build Coastguard Worker} 565*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vprotq(<2 x i64>, <2 x i64>) nounwind readnone 566*9880d681SAndroid Build Coastguard Worker 567*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_vprotw(<8 x i16> %a0) { 568*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vprotw 569*9880d681SAndroid Build Coastguard Worker ;CHECK: vprotw $7, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 570*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 571*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.xop.vprotwi(<8 x i16> %a0, i8 7) 572*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 573*9880d681SAndroid Build Coastguard Worker} 574*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.xop.vprotwi(<8 x i16>, i8) nounwind readnone 575*9880d681SAndroid Build Coastguard Worker 576*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_vprotw_rm(<8 x i16> %a0, <8 x i16> %a1) { 577*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vprotw_rm 578*9880d681SAndroid Build Coastguard Worker ;CHECK: vprotw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 579*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 580*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.xop.vprotw(<8 x i16> %a0, <8 x i16> %a1) 581*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 582*9880d681SAndroid Build Coastguard Worker} 583*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_vprotw_mr(<8 x i16> %a0, <8 x i16> %a1) { 584*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vprotw_mr 585*9880d681SAndroid Build Coastguard Worker ;CHECK: vprotw {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 586*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 587*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.xop.vprotw(<8 x i16> %a1, <8 x i16> %a0) 588*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 589*9880d681SAndroid Build Coastguard Worker} 590*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.xop.vprotw(<8 x i16>, <8 x i16>) nounwind readnone 591*9880d681SAndroid Build Coastguard Worker 592*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_vpshab_rm(<16 x i8> %a0, <16 x i8> %a1) { 593*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshab_rm 594*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshab {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 595*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 596*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.xop.vpshab(<16 x i8> %a0, <16 x i8> %a1) 597*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 598*9880d681SAndroid Build Coastguard Worker} 599*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_vpshab_mr(<16 x i8> %a0, <16 x i8> %a1) { 600*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshab_mr 601*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshab {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 602*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 603*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.xop.vpshab(<16 x i8> %a1, <16 x i8> %a0) 604*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 605*9880d681SAndroid Build Coastguard Worker} 606*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.xop.vpshab(<16 x i8>, <16 x i8>) nounwind readnone 607*9880d681SAndroid Build Coastguard Worker 608*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vpshad_rm(<4 x i32> %a0, <4 x i32> %a1) { 609*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshad_rm 610*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshad {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 611*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 612*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vpshad(<4 x i32> %a0, <4 x i32> %a1) 613*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 614*9880d681SAndroid Build Coastguard Worker} 615*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vpshad_mr(<4 x i32> %a0, <4 x i32> %a1) { 616*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshad_mr 617*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshad {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 618*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 619*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vpshad(<4 x i32> %a1, <4 x i32> %a0) 620*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 621*9880d681SAndroid Build Coastguard Worker} 622*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vpshad(<4 x i32>, <4 x i32>) nounwind readnone 623*9880d681SAndroid Build Coastguard Worker 624*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vpshaq_rm(<2 x i64> %a0, <2 x i64> %a1) { 625*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshaq_rm 626*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshaq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 627*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 628*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vpshaq(<2 x i64> %a0, <2 x i64> %a1) 629*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 630*9880d681SAndroid Build Coastguard Worker} 631*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vpshaq_mr(<2 x i64> %a0, <2 x i64> %a1) { 632*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshaq_mr 633*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshaq {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 634*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 635*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vpshaq(<2 x i64> %a1, <2 x i64> %a0) 636*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 637*9880d681SAndroid Build Coastguard Worker} 638*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vpshaq(<2 x i64>, <2 x i64>) nounwind readnone 639*9880d681SAndroid Build Coastguard Worker 640*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_vpshaw_rm(<8 x i16> %a0, <8 x i16> %a1) { 641*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshaw_rm 642*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshaw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 643*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 644*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.xop.vpshaw(<8 x i16> %a0, <8 x i16> %a1) 645*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 646*9880d681SAndroid Build Coastguard Worker} 647*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_vpshaw_mr(<8 x i16> %a0, <8 x i16> %a1) { 648*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshaw_mr 649*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshaw {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 650*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 651*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.xop.vpshaw(<8 x i16> %a1, <8 x i16> %a0) 652*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 653*9880d681SAndroid Build Coastguard Worker} 654*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.xop.vpshaw(<8 x i16>, <8 x i16>) nounwind readnone 655*9880d681SAndroid Build Coastguard Worker 656*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_vpshlb_rm(<16 x i8> %a0, <16 x i8> %a1) { 657*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshlb_rm 658*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshlb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 659*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 660*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.xop.vpshlb(<16 x i8> %a0, <16 x i8> %a1) 661*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 662*9880d681SAndroid Build Coastguard Worker} 663*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_vpshlb_mr(<16 x i8> %a0, <16 x i8> %a1) { 664*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshlb_mr 665*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshlb {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 666*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 667*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.xop.vpshlb(<16 x i8> %a1, <16 x i8> %a0) 668*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 669*9880d681SAndroid Build Coastguard Worker} 670*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.xop.vpshlb(<16 x i8>, <16 x i8>) nounwind readnone 671*9880d681SAndroid Build Coastguard Worker 672*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vpshld_rm(<4 x i32> %a0, <4 x i32> %a1) { 673*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshld_rm 674*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshld {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 675*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 676*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vpshld(<4 x i32> %a0, <4 x i32> %a1) 677*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 678*9880d681SAndroid Build Coastguard Worker} 679*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_vpshld_mr(<4 x i32> %a0, <4 x i32> %a1) { 680*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshld_mr 681*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshld {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 682*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 683*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.xop.vpshld(<4 x i32> %a1, <4 x i32> %a0) 684*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 685*9880d681SAndroid Build Coastguard Worker} 686*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.xop.vpshld(<4 x i32>, <4 x i32>) nounwind readnone 687*9880d681SAndroid Build Coastguard Worker 688*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vpshlq_rm(<2 x i64> %a0, <2 x i64> %a1) { 689*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshlq_rm 690*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshlq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 691*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 692*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vpshlq(<2 x i64> %a0, <2 x i64> %a1) 693*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 694*9880d681SAndroid Build Coastguard Worker} 695*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_vpshlq_mr(<2 x i64> %a0, <2 x i64> %a1) { 696*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshlq_mr 697*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshlq {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 698*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 699*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.xop.vpshlq(<2 x i64> %a1, <2 x i64> %a0) 700*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 701*9880d681SAndroid Build Coastguard Worker} 702*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.xop.vpshlq(<2 x i64>, <2 x i64>) nounwind readnone 703*9880d681SAndroid Build Coastguard Worker 704*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_vpshlw_rm(<8 x i16> %a0, <8 x i16> %a1) { 705*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshlw_rm 706*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshlw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 707*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 708*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.xop.vpshlw(<8 x i16> %a0, <8 x i16> %a1) 709*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 710*9880d681SAndroid Build Coastguard Worker} 711*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_vpshlw_mr(<8 x i16> %a0, <8 x i16> %a1) { 712*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_vpshlw_mr 713*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshlw {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 714*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 715*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.xop.vpshlw(<8 x i16> %a1, <8 x i16> %a0) 716*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 717*9880d681SAndroid Build Coastguard Worker} 718*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.xop.vpshlw(<8 x i16>, <8 x i16>) nounwind readnone 719