1*9880d681SAndroid Build Coastguard Worker; RUN: llc -O3 -disable-peephole -mtriple=x86_64-unknown-unknown -mattr=+avx,+aes,+pclmul < %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 i64> @stack_fold_aesdec(<2 x i64> %a0, <2 x i64> %a1) { 12*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_aesdec 13*9880d681SAndroid Build Coastguard Worker ;CHECK: vaesdec {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 14*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}"() 15*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.aesni.aesdec(<2 x i64> %a0, <2 x i64> %a1) 16*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 17*9880d681SAndroid Build Coastguard Worker} 18*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.aesni.aesdec(<2 x i64>, <2 x i64>) nounwind readnone 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_aesdeclast(<2 x i64> %a0, <2 x i64> %a1) { 21*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_aesdeclast 22*9880d681SAndroid Build Coastguard Worker ;CHECK: vaesdeclast {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 23*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}"() 24*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.aesni.aesdeclast(<2 x i64> %a0, <2 x i64> %a1) 25*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 26*9880d681SAndroid Build Coastguard Worker} 27*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.aesni.aesdeclast(<2 x i64>, <2 x i64>) nounwind readnone 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_aesenc(<2 x i64> %a0, <2 x i64> %a1) { 30*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_aesenc 31*9880d681SAndroid Build Coastguard Worker ;CHECK: vaesenc {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 32*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}"() 33*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.aesni.aesenc(<2 x i64> %a0, <2 x i64> %a1) 34*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 35*9880d681SAndroid Build Coastguard Worker} 36*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.aesni.aesenc(<2 x i64>, <2 x i64>) nounwind readnone 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_aesenclast(<2 x i64> %a0, <2 x i64> %a1) { 39*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_aesenclast 40*9880d681SAndroid Build Coastguard Worker ;CHECK: vaesenclast {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 41*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}"() 42*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.aesni.aesenclast(<2 x i64> %a0, <2 x i64> %a1) 43*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 44*9880d681SAndroid Build Coastguard Worker} 45*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.aesni.aesenclast(<2 x i64>, <2 x i64>) nounwind readnone 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_aesimc(<2 x i64> %a0) { 48*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_aesimc 49*9880d681SAndroid Build Coastguard Worker ;CHECK: vaesimc {{-?[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 i64> @llvm.x86.aesni.aesimc(<2 x i64> %a0) 52*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 53*9880d681SAndroid Build Coastguard Worker} 54*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.aesni.aesimc(<2 x i64>) nounwind readnone 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_aeskeygenassist(<2 x i64> %a0) { 57*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_aeskeygenassist 58*9880d681SAndroid Build Coastguard Worker ;CHECK: vaeskeygenassist $7, {{-?[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 <2 x i64> @llvm.x86.aesni.aeskeygenassist(<2 x i64> %a0, i8 7) 61*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 62*9880d681SAndroid Build Coastguard Worker} 63*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.aesni.aeskeygenassist(<2 x i64>, i8) nounwind readnone 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_movd_load(i32 %a0) { 66*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_movd_load 67*9880d681SAndroid Build Coastguard Worker ;CHECK: movd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 4-byte Folded Reload 68*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{rax},~{rbx},~{rcx},~{rdx},~{rsi},~{rdi},~{rbp},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() 69*9880d681SAndroid Build Coastguard Worker %2 = insertelement <4 x i32> zeroinitializer, i32 %a0, i32 0 70*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 71*9880d681SAndroid Build Coastguard Worker %3 = add <4 x i32> %2, <i32 1, i32 1, i32 1, i32 1> 72*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 73*9880d681SAndroid Build Coastguard Worker} 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Workerdefine i32 @stack_fold_movd_store(<4 x i32> %a0) { 76*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_movd_store 77*9880d681SAndroid Build Coastguard Worker ;CHECK: movd {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp) {{.*#+}} 4-byte Folded Spill 78*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 79*9880d681SAndroid Build Coastguard Worker %1 = add <4 x i32> %a0, <i32 1, i32 1, i32 1, i32 1> 80*9880d681SAndroid Build Coastguard Worker %2 = extractelement <4 x i32> %1, i32 0 81*9880d681SAndroid Build Coastguard Worker %3 = tail call <2 x i64> asm sideeffect "nop", "=x,~{rax},~{rbx},~{rcx},~{rdx},~{rsi},~{rdi},~{rbp},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() 82*9880d681SAndroid Build Coastguard Worker ret i32 %2 83*9880d681SAndroid Build Coastguard Worker} 84*9880d681SAndroid Build Coastguard Worker 85*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_movq_load(<2 x i64> %a0) { 86*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_movq_load 87*9880d681SAndroid Build Coastguard Worker ;CHECK: movq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 88*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}"() 89*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <2 x i64> %a0, <2 x i64> zeroinitializer, <2 x i32> <i32 0, i32 2> 90*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 91*9880d681SAndroid Build Coastguard Worker %3 = add <2 x i64> %2, <i64 1, i64 1> 92*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 93*9880d681SAndroid Build Coastguard Worker} 94*9880d681SAndroid Build Coastguard Worker 95*9880d681SAndroid Build Coastguard Workerdefine i64 @stack_fold_movq_store(<2 x i64> %a0) { 96*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_movq_store 97*9880d681SAndroid Build Coastguard Worker ;CHECK: movq {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp) {{.*#+}} 8-byte Folded Spill 98*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 99*9880d681SAndroid Build Coastguard Worker %1 = add <2 x i64> %a0, <i64 1, i64 1> 100*9880d681SAndroid Build Coastguard Worker %2 = extractelement <2 x i64> %1, i32 0 101*9880d681SAndroid Build Coastguard Worker %3 = tail call <2 x i64> asm sideeffect "nop", "=x,~{rax},~{rbx},~{rcx},~{rdx},~{rsi},~{rdi},~{rbp},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() 102*9880d681SAndroid Build Coastguard Worker ret i64 %2 103*9880d681SAndroid Build Coastguard Worker} 104*9880d681SAndroid Build Coastguard Worker 105*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_mpsadbw(<16 x i8> %a0, <16 x i8> %a1) { 106*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_mpsadbw 107*9880d681SAndroid Build Coastguard Worker ;CHECK: vmpsadbw $7, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 108*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}"() 109*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse41.mpsadbw(<16 x i8> %a0, <16 x i8> %a1, i8 7) 110*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 111*9880d681SAndroid Build Coastguard Worker} 112*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse41.mpsadbw(<16 x i8>, <16 x i8>, i8) nounwind readnone 113*9880d681SAndroid Build Coastguard Worker 114*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pabsb(<16 x i8> %a0) { 115*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pabsb 116*9880d681SAndroid Build Coastguard Worker ;CHECK: vpabsb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 117*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}"() 118*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.ssse3.pabs.b.128(<16 x i8> %a0) 119*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 120*9880d681SAndroid Build Coastguard Worker} 121*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.ssse3.pabs.b.128(<16 x i8>) nounwind readnone 122*9880d681SAndroid Build Coastguard Worker 123*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pabsd(<4 x i32> %a0) { 124*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pabsd 125*9880d681SAndroid Build Coastguard Worker ;CHECK: vpabsd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 126*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}"() 127*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.ssse3.pabs.d.128(<4 x i32> %a0) 128*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 129*9880d681SAndroid Build Coastguard Worker} 130*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.ssse3.pabs.d.128(<4 x i32>) nounwind readnone 131*9880d681SAndroid Build Coastguard Worker 132*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pabsw(<8 x i16> %a0) { 133*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pabsw 134*9880d681SAndroid Build Coastguard Worker ;CHECK: vpabsw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 135*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}"() 136*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.ssse3.pabs.w.128(<8 x i16> %a0) 137*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 138*9880d681SAndroid Build Coastguard Worker} 139*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.pabs.w.128(<8 x i16>) nounwind readnone 140*9880d681SAndroid Build Coastguard Worker 141*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_packssdw(<4 x i32> %a0, <4 x i32> %a1) { 142*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_packssdw 143*9880d681SAndroid Build Coastguard Worker ;CHECK: vpackssdw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 144*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}"() 145*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %a0, <4 x i32> %a1) 146*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 147*9880d681SAndroid Build Coastguard Worker} 148*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32>, <4 x i32>) nounwind readnone 149*9880d681SAndroid Build Coastguard Worker 150*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_packsswb(<8 x i16> %a0, <8 x i16> %a1) { 151*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_packsswb 152*9880d681SAndroid Build Coastguard Worker ;CHECK: vpacksswb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 153*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}"() 154*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse2.packsswb.128(<8 x i16> %a0, <8 x i16> %a1) 155*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 156*9880d681SAndroid Build Coastguard Worker} 157*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.packsswb.128(<8 x i16>, <8 x i16>) nounwind readnone 158*9880d681SAndroid Build Coastguard Worker 159*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_packusdw(<4 x i32> %a0, <4 x i32> %a1) { 160*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_packusdw 161*9880d681SAndroid Build Coastguard Worker ;CHECK: vpackusdw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 162*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}"() 163*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse41.packusdw(<4 x i32> %a0, <4 x i32> %a1) 164*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 165*9880d681SAndroid Build Coastguard Worker} 166*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse41.packusdw(<4 x i32>, <4 x i32>) nounwind readnone 167*9880d681SAndroid Build Coastguard Worker 168*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_packuswb(<8 x i16> %a0, <8 x i16> %a1) { 169*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_packuswb 170*9880d681SAndroid Build Coastguard Worker ;CHECK: vpackuswb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 171*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}"() 172*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16> %a0, <8 x i16> %a1) 173*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 174*9880d681SAndroid Build Coastguard Worker} 175*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16>, <8 x i16>) nounwind readnone 176*9880d681SAndroid Build Coastguard Worker 177*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_paddb(<16 x i8> %a0, <16 x i8> %a1) { 178*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddb 179*9880d681SAndroid Build Coastguard Worker ;CHECK: vpaddb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 180*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}"() 181*9880d681SAndroid Build Coastguard Worker %2 = add <16 x i8> %a0, %a1 182*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 183*9880d681SAndroid Build Coastguard Worker} 184*9880d681SAndroid Build Coastguard Worker 185*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_paddd(<4 x i32> %a0, <4 x i32> %a1) { 186*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddd 187*9880d681SAndroid Build Coastguard Worker ;CHECK: vpaddd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 188*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}"() 189*9880d681SAndroid Build Coastguard Worker %2 = add <4 x i32> %a0, %a1 190*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 191*9880d681SAndroid Build Coastguard Worker} 192*9880d681SAndroid Build Coastguard Worker 193*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_paddq(<2 x i64> %a0, <2 x i64> %a1) { 194*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddq 195*9880d681SAndroid Build Coastguard Worker ;CHECK: vpaddq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 196*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}"() 197*9880d681SAndroid Build Coastguard Worker %2 = add <2 x i64> %a0, %a1 198*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 199*9880d681SAndroid Build Coastguard Worker} 200*9880d681SAndroid Build Coastguard Worker 201*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_paddsb(<16 x i8> %a0, <16 x i8> %a1) { 202*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddsb 203*9880d681SAndroid Build Coastguard Worker ;CHECK: vpaddsb {{-?[0-9]*}}(%rsp), {{%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,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 205*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse2.padds.b(<16 x i8> %a0, <16 x i8> %a1) 206*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 207*9880d681SAndroid Build Coastguard Worker} 208*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.padds.b(<16 x i8>, <16 x i8>) nounwind readnone 209*9880d681SAndroid Build Coastguard Worker 210*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_paddsw(<8 x i16> %a0, <8 x i16> %a1) { 211*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddsw 212*9880d681SAndroid Build Coastguard Worker ;CHECK: vpaddsw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 213*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}"() 214*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.padds.w(<8 x i16> %a0, <8 x i16> %a1) 215*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 216*9880d681SAndroid Build Coastguard Worker} 217*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.padds.w(<8 x i16>, <8 x i16>) nounwind readnone 218*9880d681SAndroid Build Coastguard Worker 219*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_paddusb(<16 x i8> %a0, <16 x i8> %a1) { 220*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddusb 221*9880d681SAndroid Build Coastguard Worker ;CHECK: vpaddusb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 222*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}"() 223*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse2.paddus.b(<16 x i8> %a0, <16 x i8> %a1) 224*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 225*9880d681SAndroid Build Coastguard Worker} 226*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.paddus.b(<16 x i8>, <16 x i8>) nounwind readnone 227*9880d681SAndroid Build Coastguard Worker 228*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_paddusw(<8 x i16> %a0, <8 x i16> %a1) { 229*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddusw 230*9880d681SAndroid Build Coastguard Worker ;CHECK: vpaddusw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 231*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}"() 232*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.paddus.w(<8 x i16> %a0, <8 x i16> %a1) 233*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 234*9880d681SAndroid Build Coastguard Worker} 235*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.paddus.w(<8 x i16>, <8 x i16>) nounwind readnone 236*9880d681SAndroid Build Coastguard Worker 237*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_paddw(<8 x i16> %a0, <8 x i16> %a1) { 238*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddw 239*9880d681SAndroid Build Coastguard Worker ;CHECK: vpaddw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 240*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}"() 241*9880d681SAndroid Build Coastguard Worker %2 = add <8 x i16> %a0, %a1 242*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 243*9880d681SAndroid Build Coastguard Worker} 244*9880d681SAndroid Build Coastguard Worker 245*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_palignr(<16 x i8> %a0, <16 x i8> %a1) { 246*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_palignr 247*9880d681SAndroid Build Coastguard Worker ;CHECK: vpalignr $1, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 248*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}"() 249*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <16 x i8> %a1, <16 x i8> %a0, <16 x i32> <i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16> 250*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 251*9880d681SAndroid Build Coastguard Worker} 252*9880d681SAndroid Build Coastguard Worker 253*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pand(<16 x i8> %a0, <16 x i8> %a1) { 254*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pand 255*9880d681SAndroid Build Coastguard Worker ;CHECK: vpand {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 256*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}"() 257*9880d681SAndroid Build Coastguard Worker %2 = and <16 x i8> %a0, %a1 258*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 259*9880d681SAndroid Build Coastguard Worker %3 = add <16 x i8> %2, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1> 260*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %3 261*9880d681SAndroid Build Coastguard Worker} 262*9880d681SAndroid Build Coastguard Worker 263*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pandn(<16 x i8> %a0, <16 x i8> %a1) { 264*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pandn 265*9880d681SAndroid Build Coastguard Worker ;CHECK: vpandn {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 266*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}"() 267*9880d681SAndroid Build Coastguard Worker %2 = xor <16 x i8> %a0, <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1> 268*9880d681SAndroid Build Coastguard Worker %3 = and <16 x i8> %2, %a1 269*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 270*9880d681SAndroid Build Coastguard Worker %4 = add <16 x i8> %3, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1> 271*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %4 272*9880d681SAndroid Build Coastguard Worker} 273*9880d681SAndroid Build Coastguard Worker 274*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pavgb(<16 x i8> %a0, <16 x i8> %a1) { 275*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pavgb 276*9880d681SAndroid Build Coastguard Worker ;CHECK: vpavgb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 277*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}"() 278*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse2.pavg.b(<16 x i8> %a0, <16 x i8> %a1) 279*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 280*9880d681SAndroid Build Coastguard Worker} 281*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.pavg.b(<16 x i8>, <16 x i8>) nounwind readnone 282*9880d681SAndroid Build Coastguard Worker 283*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pavgw(<8 x i16> %a0, <8 x i16> %a1) { 284*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pavgw 285*9880d681SAndroid Build Coastguard Worker ;CHECK: vpavgw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 286*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}"() 287*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.pavg.w(<8 x i16> %a0, <8 x i16> %a1) 288*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 289*9880d681SAndroid Build Coastguard Worker} 290*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.pavg.w(<8 x i16>, <8 x i16>) nounwind readnone 291*9880d681SAndroid Build Coastguard Worker 292*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pblendvb(<16 x i8> %a0, <16 x i8> %a1, <16 x i8> %c) { 293*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pblendvb 294*9880d681SAndroid Build Coastguard Worker ;CHECK: vpblendvb {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 295*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}"() 296*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse41.pblendvb(<16 x i8> %a1, <16 x i8> %c, <16 x i8> %a0) 297*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 298*9880d681SAndroid Build Coastguard Worker} 299*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse41.pblendvb(<16 x i8>, <16 x i8>, <16 x i8>) nounwind readnone 300*9880d681SAndroid Build Coastguard Worker 301*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pblendw(<8 x i16> %a0, <8 x i16> %a1) { 302*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pblendw 303*9880d681SAndroid Build Coastguard Worker ;CHECK: vpblendw $7, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 304*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}"() 305*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse41.pblendw(<8 x i16> %a0, <8 x i16> %a1, i8 7) 306*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 307*9880d681SAndroid Build Coastguard Worker} 308*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse41.pblendw(<8 x i16>, <8 x i16>, i8) nounwind readnone 309*9880d681SAndroid Build Coastguard Worker 310*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pclmulqdq(<2 x i64> %a0, <2 x i64> %a1) { 311*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pclmulqdq 312*9880d681SAndroid Build Coastguard Worker ;CHECK: vpclmulqdq $0, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 313*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}"() 314*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> %a0, <2 x i64> %a1, i8 0) 315*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 316*9880d681SAndroid Build Coastguard Worker} 317*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.pclmulqdq(<2 x i64>, <2 x i64>, i8) nounwind readnone 318*9880d681SAndroid Build Coastguard Worker 319*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pcmpeqb(<16 x i8> %a0, <16 x i8> %a1) { 320*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpeqb 321*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmpeqb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 322*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}"() 323*9880d681SAndroid Build Coastguard Worker %2 = icmp eq <16 x i8> %a0, %a1 324*9880d681SAndroid Build Coastguard Worker %3 = sext <16 x i1> %2 to <16 x i8> 325*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %3 326*9880d681SAndroid Build Coastguard Worker} 327*9880d681SAndroid Build Coastguard Worker 328*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pcmpeqd(<4 x i32> %a0, <4 x i32> %a1) { 329*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpeqd 330*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmpeqd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 331*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}"() 332*9880d681SAndroid Build Coastguard Worker %2 = icmp eq <4 x i32> %a0, %a1 333*9880d681SAndroid Build Coastguard Worker %3 = sext <4 x i1> %2 to <4 x i32> 334*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 335*9880d681SAndroid Build Coastguard Worker} 336*9880d681SAndroid Build Coastguard Worker 337*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pcmpeqq(<2 x i64> %a0, <2 x i64> %a1) { 338*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpeqq 339*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmpeqq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 340*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}"() 341*9880d681SAndroid Build Coastguard Worker %2 = icmp eq <2 x i64> %a0, %a1 342*9880d681SAndroid Build Coastguard Worker %3 = sext <2 x i1> %2 to <2 x i64> 343*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 344*9880d681SAndroid Build Coastguard Worker} 345*9880d681SAndroid Build Coastguard Worker 346*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pcmpeqw(<8 x i16> %a0, <8 x i16> %a1) { 347*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpeqw 348*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmpeqw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 349*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}"() 350*9880d681SAndroid Build Coastguard Worker %2 = icmp eq <8 x i16> %a0, %a1 351*9880d681SAndroid Build Coastguard Worker %3 = sext <8 x i1> %2 to <8 x i16> 352*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %3 353*9880d681SAndroid Build Coastguard Worker} 354*9880d681SAndroid Build Coastguard Worker 355*9880d681SAndroid Build Coastguard Workerdefine i32 @stack_fold_pcmpestri(<16 x i8> %a0, <16 x i8> %a1) { 356*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpestri 357*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmpestri $7, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 358*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},~{rax},~{flags}"() 359*9880d681SAndroid Build Coastguard Worker %2 = call i32 @llvm.x86.sse42.pcmpestri128(<16 x i8> %a0, i32 7, <16 x i8> %a1, i32 7, i8 7) 360*9880d681SAndroid Build Coastguard Worker ret i32 %2 361*9880d681SAndroid Build Coastguard Worker} 362*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse42.pcmpestri128(<16 x i8>, i32, <16 x i8>, i32, i8) nounwind readnone 363*9880d681SAndroid Build Coastguard Worker 364*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pcmpestrm(<16 x i8> %a0, <16 x i8> %a1) { 365*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpestrm 366*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmpestrm $7, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 367*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},~{rax},~{flags}"() 368*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse42.pcmpestrm128(<16 x i8> %a0, i32 7, <16 x i8> %a1, i32 7, i8 7) 369*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 370*9880d681SAndroid Build Coastguard Worker} 371*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse42.pcmpestrm128(<16 x i8>, i32, <16 x i8>, i32, i8) nounwind readnone 372*9880d681SAndroid Build Coastguard Worker 373*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pcmpgtb(<16 x i8> %a0, <16 x i8> %a1) { 374*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpgtb 375*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmpgtb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 376*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}"() 377*9880d681SAndroid Build Coastguard Worker %2 = icmp sgt <16 x i8> %a0, %a1 378*9880d681SAndroid Build Coastguard Worker %3 = sext <16 x i1> %2 to <16 x i8> 379*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %3 380*9880d681SAndroid Build Coastguard Worker} 381*9880d681SAndroid Build Coastguard Worker 382*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pcmpgtd(<4 x i32> %a0, <4 x i32> %a1) { 383*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpgtd 384*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmpgtd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 385*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}"() 386*9880d681SAndroid Build Coastguard Worker %2 = icmp sgt <4 x i32> %a0, %a1 387*9880d681SAndroid Build Coastguard Worker %3 = sext <4 x i1> %2 to <4 x i32> 388*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 389*9880d681SAndroid Build Coastguard Worker} 390*9880d681SAndroid Build Coastguard Worker 391*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pcmpgtq(<2 x i64> %a0, <2 x i64> %a1) { 392*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpgtq 393*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmpgtq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 394*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}"() 395*9880d681SAndroid Build Coastguard Worker %2 = icmp sgt <2 x i64> %a0, %a1 396*9880d681SAndroid Build Coastguard Worker %3 = sext <2 x i1> %2 to <2 x i64> 397*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 398*9880d681SAndroid Build Coastguard Worker} 399*9880d681SAndroid Build Coastguard Worker 400*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pcmpgtw(<8 x i16> %a0, <8 x i16> %a1) { 401*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpgtw 402*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmpgtw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 403*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}"() 404*9880d681SAndroid Build Coastguard Worker %2 = icmp sgt <8 x i16> %a0, %a1 405*9880d681SAndroid Build Coastguard Worker %3 = sext <8 x i1> %2 to <8 x i16> 406*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %3 407*9880d681SAndroid Build Coastguard Worker} 408*9880d681SAndroid Build Coastguard Worker 409*9880d681SAndroid Build Coastguard Workerdefine i32 @stack_fold_pcmpistri(<16 x i8> %a0, <16 x i8> %a1) { 410*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpistri 411*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmpistri $7, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 412*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}"() 413*9880d681SAndroid Build Coastguard Worker %2 = call i32 @llvm.x86.sse42.pcmpistri128(<16 x i8> %a0, <16 x i8> %a1, i8 7) 414*9880d681SAndroid Build Coastguard Worker ret i32 %2 415*9880d681SAndroid Build Coastguard Worker} 416*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse42.pcmpistri128(<16 x i8>, <16 x i8>, i8) nounwind readnone 417*9880d681SAndroid Build Coastguard Worker 418*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pcmpistrm(<16 x i8> %a0, <16 x i8> %a1) { 419*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpistrm 420*9880d681SAndroid Build Coastguard Worker ;CHECK: vpcmpistrm $7, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 421*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}"() 422*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse42.pcmpistrm128(<16 x i8> %a0, <16 x i8> %a1, i8 7) 423*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 424*9880d681SAndroid Build Coastguard Worker} 425*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse42.pcmpistrm128(<16 x i8>, <16 x i8>, i8) nounwind readnone 426*9880d681SAndroid Build Coastguard Worker 427*9880d681SAndroid Build Coastguard Worker; TODO stack_fold_pextrb 428*9880d681SAndroid Build Coastguard Worker 429*9880d681SAndroid Build Coastguard Workerdefine i32 @stack_fold_pextrd(<4 x i32> %a0) { 430*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pextrd 431*9880d681SAndroid Build Coastguard Worker ;CHECK: pextrd $1, {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp) {{.*#+}} 4-byte Folded Spill 432*9880d681SAndroid Build Coastguard Worker ;CHECK: movl {{-?[0-9]*}}(%rsp), %eax {{.*#+}} 4-byte Reload 433*9880d681SAndroid Build Coastguard Worker %1 = extractelement <4 x i32> %a0, i32 1 434*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i64> asm sideeffect "nop", "=x,~{rax},~{rbx},~{rcx},~{rdx},~{rsi},~{rdi},~{rbp},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() 435*9880d681SAndroid Build Coastguard Worker ret i32 %1 436*9880d681SAndroid Build Coastguard Worker} 437*9880d681SAndroid Build Coastguard Worker 438*9880d681SAndroid Build Coastguard Workerdefine i64 @stack_fold_pextrq(<2 x i64> %a0) { 439*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pextrq 440*9880d681SAndroid Build Coastguard Worker ;CHECK: pextrq $1, {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp) {{.*#+}} 8-byte Folded Spill 441*9880d681SAndroid Build Coastguard Worker ;CHECK: movq {{-?[0-9]*}}(%rsp), %rax {{.*#+}} 8-byte Reload 442*9880d681SAndroid Build Coastguard Worker %1 = extractelement <2 x i64> %a0, i32 1 443*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i64> asm sideeffect "nop", "=x,~{rax},~{rbx},~{rcx},~{rdx},~{rsi},~{rdi},~{rbp},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() 444*9880d681SAndroid Build Coastguard Worker ret i64 %1 445*9880d681SAndroid Build Coastguard Worker} 446*9880d681SAndroid Build Coastguard Worker 447*9880d681SAndroid Build Coastguard Worker; TODO stack_fold_pextrw 448*9880d681SAndroid Build Coastguard Worker 449*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_phaddd(<4 x i32> %a0, <4 x i32> %a1) { 450*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_phaddd 451*9880d681SAndroid Build Coastguard Worker ;CHECK: vphaddd {{-?[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 <4 x i32> @llvm.x86.ssse3.phadd.d.128(<4 x i32> %a0, <4 x i32> %a1) 454*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 455*9880d681SAndroid Build Coastguard Worker} 456*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.ssse3.phadd.d.128(<4 x i32>, <4 x i32>) nounwind readnone 457*9880d681SAndroid Build Coastguard Worker 458*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_phaddsw(<8 x i16> %a0, <8 x i16> %a1) { 459*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_phaddsw 460*9880d681SAndroid Build Coastguard Worker ;CHECK: vphaddsw {{-?[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 <8 x i16> @llvm.x86.ssse3.phadd.sw.128(<8 x i16> %a0, <8 x i16> %a1) 463*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 464*9880d681SAndroid Build Coastguard Worker} 465*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.phadd.sw.128(<8 x i16>, <8 x i16>) nounwind readnone 466*9880d681SAndroid Build Coastguard Worker 467*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_phaddw(<8 x i16> %a0, <8 x i16> %a1) { 468*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_phaddw 469*9880d681SAndroid Build Coastguard Worker ;CHECK: vphaddw {{-?[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 <8 x i16> @llvm.x86.ssse3.phadd.w.128(<8 x i16> %a0, <8 x i16> %a1) 472*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 473*9880d681SAndroid Build Coastguard Worker} 474*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.phadd.w.128(<8 x i16>, <8 x i16>) nounwind readnone 475*9880d681SAndroid Build Coastguard Worker 476*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_phminposuw(<8 x i16> %a0) { 477*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_phminposuw 478*9880d681SAndroid Build Coastguard Worker ;CHECK: vphminposuw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 479*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}"() 480*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse41.phminposuw(<8 x i16> %a0) 481*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 482*9880d681SAndroid Build Coastguard Worker} 483*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse41.phminposuw(<8 x i16>) nounwind readnone 484*9880d681SAndroid Build Coastguard Worker 485*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_phsubd(<4 x i32> %a0, <4 x i32> %a1) { 486*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_phsubd 487*9880d681SAndroid Build Coastguard Worker ;CHECK: vphsubd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 488*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}"() 489*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.ssse3.phsub.d.128(<4 x i32> %a0, <4 x i32> %a1) 490*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 491*9880d681SAndroid Build Coastguard Worker} 492*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.ssse3.phsub.d.128(<4 x i32>, <4 x i32>) nounwind readnone 493*9880d681SAndroid Build Coastguard Worker 494*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_phsubsw(<8 x i16> %a0, <8 x i16> %a1) { 495*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_phsubsw 496*9880d681SAndroid Build Coastguard Worker ;CHECK: vphsubsw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 497*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}"() 498*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.ssse3.phsub.sw.128(<8 x i16> %a0, <8 x i16> %a1) 499*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 500*9880d681SAndroid Build Coastguard Worker} 501*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.phsub.sw.128(<8 x i16>, <8 x i16>) nounwind readnone 502*9880d681SAndroid Build Coastguard Worker 503*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_phsubw(<8 x i16> %a0, <8 x i16> %a1) { 504*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_phsubw 505*9880d681SAndroid Build Coastguard Worker ;CHECK: vphsubw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 506*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}"() 507*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.ssse3.phsub.w.128(<8 x i16> %a0, <8 x i16> %a1) 508*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 509*9880d681SAndroid Build Coastguard Worker} 510*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.phsub.w.128(<8 x i16>, <8 x i16>) nounwind readnone 511*9880d681SAndroid Build Coastguard Worker 512*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pinsrb(<16 x i8> %a0, i8 %a1) { 513*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pinsrb 514*9880d681SAndroid Build Coastguard Worker ;CHECK: vpinsrb $1, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 4-byte Folded Reload 515*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{rax},~{rbx},~{rcx},~{rdx},~{rsi},~{rdi},~{rbp},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() 516*9880d681SAndroid Build Coastguard Worker %2 = insertelement <16 x i8> %a0, i8 %a1, i32 1 517*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 518*9880d681SAndroid Build Coastguard Worker} 519*9880d681SAndroid Build Coastguard Worker 520*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pinsrd(<4 x i32> %a0, i32 %a1) { 521*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pinsrd 522*9880d681SAndroid Build Coastguard Worker ;CHECK: vpinsrd $1, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 4-byte Folded Reload 523*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{rax},~{rbx},~{rcx},~{rdx},~{rsi},~{rdi},~{rbp},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() 524*9880d681SAndroid Build Coastguard Worker %2 = insertelement <4 x i32> %a0, i32 %a1, i32 1 525*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 526*9880d681SAndroid Build Coastguard Worker} 527*9880d681SAndroid Build Coastguard Worker 528*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pinsrq(<2 x i64> %a0, i64 %a1) { 529*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pinsrq 530*9880d681SAndroid Build Coastguard Worker ;CHECK: vpinsrq $1, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 8-byte Folded Reload 531*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{rax},~{rbx},~{rcx},~{rdx},~{rsi},~{rdi},~{rbp},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() 532*9880d681SAndroid Build Coastguard Worker %2 = insertelement <2 x i64> %a0, i64 %a1, i32 1 533*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 534*9880d681SAndroid Build Coastguard Worker} 535*9880d681SAndroid Build Coastguard Worker 536*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pinsrw(<8 x i16> %a0, i16 %a1) { 537*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pinsrw 538*9880d681SAndroid Build Coastguard Worker ;CHECK: vpinsrw $1, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 4-byte Folded Reload 539*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{rax},~{rbx},~{rcx},~{rdx},~{rsi},~{rdi},~{rbp},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() 540*9880d681SAndroid Build Coastguard Worker %2 = insertelement <8 x i16> %a0, i16 %a1, i32 1 541*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 542*9880d681SAndroid Build Coastguard Worker} 543*9880d681SAndroid Build Coastguard Worker 544*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmaddubsw(<16 x i8> %a0, <16 x i8> %a1) { 545*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaddubsw 546*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmaddubsw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 547*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}"() 548*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128(<16 x i8> %a0, <16 x i8> %a1) 549*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 550*9880d681SAndroid Build Coastguard Worker} 551*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128(<16 x i8>, <16 x i8>) nounwind readnone 552*9880d681SAndroid Build Coastguard Worker 553*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmaddwd(<8 x i16> %a0, <8 x i16> %a1) { 554*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaddwd 555*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmaddwd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 556*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}"() 557*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.sse2.pmadd.wd(<8 x i16> %a0, <8 x i16> %a1) 558*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 559*9880d681SAndroid Build Coastguard Worker} 560*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.sse2.pmadd.wd(<8 x i16>, <8 x i16>) nounwind readnone 561*9880d681SAndroid Build Coastguard Worker 562*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pmaxsb(<16 x i8> %a0, <16 x i8> %a1) { 563*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaxsb 564*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmaxsb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 565*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}"() 566*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse41.pmaxsb(<16 x i8> %a0, <16 x i8> %a1) 567*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 568*9880d681SAndroid Build Coastguard Worker} 569*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse41.pmaxsb(<16 x i8>, <16 x i8>) nounwind readnone 570*9880d681SAndroid Build Coastguard Worker 571*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmaxsd(<4 x i32> %a0, <4 x i32> %a1) { 572*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaxsd 573*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmaxsd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 574*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}"() 575*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %a0, <4 x i32> %a1) 576*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 577*9880d681SAndroid Build Coastguard Worker} 578*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32>, <4 x i32>) nounwind readnone 579*9880d681SAndroid Build Coastguard Worker 580*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmaxsw(<8 x i16> %a0, <8 x i16> %a1) { 581*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaxsw 582*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmaxsw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 583*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}"() 584*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.pmaxs.w(<8 x i16> %a0, <8 x i16> %a1) 585*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 586*9880d681SAndroid Build Coastguard Worker} 587*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.pmaxs.w(<8 x i16>, <8 x i16>) nounwind readnone 588*9880d681SAndroid Build Coastguard Worker 589*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pmaxub(<16 x i8> %a0, <16 x i8> %a1) { 590*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaxub 591*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmaxub {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 592*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}"() 593*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse2.pmaxu.b(<16 x i8> %a0, <16 x i8> %a1) 594*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 595*9880d681SAndroid Build Coastguard Worker} 596*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.pmaxu.b(<16 x i8>, <16 x i8>) nounwind readnone 597*9880d681SAndroid Build Coastguard Worker 598*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmaxud(<4 x i32> %a0, <4 x i32> %a1) { 599*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaxud 600*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmaxud {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 601*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}"() 602*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.sse41.pmaxud(<4 x i32> %a0, <4 x i32> %a1) 603*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 604*9880d681SAndroid Build Coastguard Worker} 605*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.sse41.pmaxud(<4 x i32>, <4 x i32>) nounwind readnone 606*9880d681SAndroid Build Coastguard Worker 607*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmaxuw(<8 x i16> %a0, <8 x i16> %a1) { 608*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaxuw 609*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmaxuw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 610*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}"() 611*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse41.pmaxuw(<8 x i16> %a0, <8 x i16> %a1) 612*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 613*9880d681SAndroid Build Coastguard Worker} 614*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse41.pmaxuw(<8 x i16>, <8 x i16>) nounwind readnone 615*9880d681SAndroid Build Coastguard Worker 616*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pminsb(<16 x i8> %a0, <16 x i8> %a1) { 617*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pminsb 618*9880d681SAndroid Build Coastguard Worker ;CHECK: vpminsb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 619*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}"() 620*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse41.pminsb(<16 x i8> %a0, <16 x i8> %a1) 621*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 622*9880d681SAndroid Build Coastguard Worker} 623*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse41.pminsb(<16 x i8>, <16 x i8>) nounwind readnone 624*9880d681SAndroid Build Coastguard Worker 625*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pminsd(<4 x i32> %a0, <4 x i32> %a1) { 626*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pminsd 627*9880d681SAndroid Build Coastguard Worker ;CHECK: vpminsd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 628*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}"() 629*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.sse41.pminsd(<4 x i32> %a0, <4 x i32> %a1) 630*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 631*9880d681SAndroid Build Coastguard Worker} 632*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.sse41.pminsd(<4 x i32>, <4 x i32>) nounwind readnone 633*9880d681SAndroid Build Coastguard Worker 634*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pminsw(<8 x i16> %a0, <8 x i16> %a1) { 635*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pminsw 636*9880d681SAndroid Build Coastguard Worker ;CHECK: vpminsw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 637*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}"() 638*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.pmins.w(<8 x i16> %a0, <8 x i16> %a1) 639*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 640*9880d681SAndroid Build Coastguard Worker} 641*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.pmins.w(<8 x i16>, <8 x i16>) nounwind readnone 642*9880d681SAndroid Build Coastguard Worker 643*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pminub(<16 x i8> %a0, <16 x i8> %a1) { 644*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pminub 645*9880d681SAndroid Build Coastguard Worker ;CHECK: vpminub {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 646*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}"() 647*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse2.pminu.b(<16 x i8> %a0, <16 x i8> %a1) 648*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 649*9880d681SAndroid Build Coastguard Worker} 650*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.pminu.b(<16 x i8>, <16 x i8>) nounwind readnone 651*9880d681SAndroid Build Coastguard Worker 652*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pminud(<4 x i32> %a0, <4 x i32> %a1) { 653*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pminud 654*9880d681SAndroid Build Coastguard Worker ;CHECK: vpminud {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 655*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}"() 656*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.sse41.pminud(<4 x i32> %a0, <4 x i32> %a1) 657*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 658*9880d681SAndroid Build Coastguard Worker} 659*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.sse41.pminud(<4 x i32>, <4 x i32>) nounwind readnone 660*9880d681SAndroid Build Coastguard Worker 661*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pminuw(<8 x i16> %a0, <8 x i16> %a1) { 662*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pminuw 663*9880d681SAndroid Build Coastguard Worker ;CHECK: vpminuw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 664*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}"() 665*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse41.pminuw(<8 x i16> %a0, <8 x i16> %a1) 666*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 667*9880d681SAndroid Build Coastguard Worker} 668*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse41.pminuw(<8 x i16>, <8 x i16>) nounwind readnone 669*9880d681SAndroid Build Coastguard Worker 670*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmovsxbd(<16 x i8> %a0) { 671*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovsxbd 672*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmovsxbd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 673*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}"() 674*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <16 x i8> %a0, <16 x i8> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3> 675*9880d681SAndroid Build Coastguard Worker %3 = sext <4 x i8> %2 to <4 x i32> 676*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 677*9880d681SAndroid Build Coastguard Worker} 678*9880d681SAndroid Build Coastguard Worker 679*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmovsxbq(<16 x i8> %a0) { 680*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovsxbq 681*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmovsxbq {{-?[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,~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 683*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <16 x i8> %a0, <16 x i8> undef, <2 x i32> <i32 0, i32 1> 684*9880d681SAndroid Build Coastguard Worker %3 = sext <2 x i8> %2 to <2 x i64> 685*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 686*9880d681SAndroid Build Coastguard Worker} 687*9880d681SAndroid Build Coastguard Worker 688*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmovsxbw(<16 x i8> %a0) { 689*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovsxbw 690*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmovsxbw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 691*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}"() 692*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <16 x i8> %a0, <16 x i8> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7> 693*9880d681SAndroid Build Coastguard Worker %3 = sext <8 x i8> %2 to <8 x i16> 694*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %3 695*9880d681SAndroid Build Coastguard Worker} 696*9880d681SAndroid Build Coastguard Worker 697*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmovsxdq(<4 x i32> %a0) { 698*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovsxdq 699*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmovsxdq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 700*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}"() 701*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <4 x i32> %a0, <4 x i32> undef, <2 x i32> <i32 0, i32 1> 702*9880d681SAndroid Build Coastguard Worker %3 = sext <2 x i32> %2 to <2 x i64> 703*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 704*9880d681SAndroid Build Coastguard Worker} 705*9880d681SAndroid Build Coastguard Worker 706*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmovsxwd(<8 x i16> %a0) { 707*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovsxwd 708*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmovsxwd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 709*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}"() 710*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <8 x i16> %a0, <8 x i16> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3> 711*9880d681SAndroid Build Coastguard Worker %3 = sext <4 x i16> %2 to <4 x i32> 712*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 713*9880d681SAndroid Build Coastguard Worker} 714*9880d681SAndroid Build Coastguard Worker 715*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmovsxwq(<8 x i16> %a0) { 716*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovsxwq 717*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmovsxwq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 718*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}"() 719*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <8 x i16> %a0, <8 x i16> undef, <2 x i32> <i32 0, i32 1> 720*9880d681SAndroid Build Coastguard Worker %3 = sext <2 x i16> %2 to <2 x i64> 721*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 722*9880d681SAndroid Build Coastguard Worker} 723*9880d681SAndroid Build Coastguard Worker 724*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmovzxbd(<16 x i8> %a0) { 725*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovzxbd 726*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmovzxbd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 727*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}"() 728*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <16 x i8> %a0, <16 x i8> zeroinitializer, <16 x i32> <i32 0, i32 16, i32 17, i32 18, i32 1, i32 19, i32 20, i32 21, i32 2, i32 22, i32 23, i32 24, i32 3, i32 25, i32 26, i32 27> 729*9880d681SAndroid Build Coastguard Worker %3 = bitcast <16 x i8> %2 to <4 x i32> 730*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 731*9880d681SAndroid Build Coastguard Worker} 732*9880d681SAndroid Build Coastguard Worker 733*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmovzxbq(<16 x i8> %a0) { 734*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovzxbq 735*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmovzxbq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 736*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}"() 737*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <16 x i8> %a0, <16 x i8> zeroinitializer, <16 x i32> <i32 0, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 1, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28> 738*9880d681SAndroid Build Coastguard Worker %3 = bitcast <16 x i8> %2 to <2 x i64> 739*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 740*9880d681SAndroid Build Coastguard Worker} 741*9880d681SAndroid Build Coastguard Worker 742*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmovzxbw(<16 x i8> %a0) { 743*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovzxbw 744*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmovzxbw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 745*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}"() 746*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <16 x i8> %a0, <16 x i8> zeroinitializer, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23> 747*9880d681SAndroid Build Coastguard Worker %3 = bitcast <16 x i8> %2 to <8 x i16> 748*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %3 749*9880d681SAndroid Build Coastguard Worker} 750*9880d681SAndroid Build Coastguard Worker 751*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmovzxdq(<4 x i32> %a0) { 752*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovzxdq 753*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmovzxdq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 754*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}"() 755*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <4 x i32> %a0, <4 x i32> zeroinitializer, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 756*9880d681SAndroid Build Coastguard Worker %3 = bitcast <4 x i32> %2 to <2 x i64> 757*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 758*9880d681SAndroid Build Coastguard Worker} 759*9880d681SAndroid Build Coastguard Worker 760*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmovzxwd(<8 x i16> %a0) { 761*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovzxwd 762*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmovzxwd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 763*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}"() 764*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <8 x i16> %a0, <8 x i16> zeroinitializer, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 765*9880d681SAndroid Build Coastguard Worker %3 = bitcast <8 x i16> %2 to <4 x i32> 766*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 767*9880d681SAndroid Build Coastguard Worker} 768*9880d681SAndroid Build Coastguard Worker 769*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmovzxwq(<8 x i16> %a0) { 770*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovzxwq 771*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmovzxwq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 772*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}"() 773*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <8 x i16> %a0, <8 x i16> zeroinitializer, <8 x i32> <i32 0, i32 8, i32 9, i32 10, i32 1, i32 11, i32 12, i32 13> 774*9880d681SAndroid Build Coastguard Worker %3 = bitcast <8 x i16> %2 to <2 x i64> 775*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 776*9880d681SAndroid Build Coastguard Worker} 777*9880d681SAndroid Build Coastguard Worker 778*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmuldq(<4 x i32> %a0, <4 x i32> %a1) { 779*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmuldq 780*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmuldq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 781*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}"() 782*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.sse41.pmuldq(<4 x i32> %a0, <4 x i32> %a1) 783*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 784*9880d681SAndroid Build Coastguard Worker} 785*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.sse41.pmuldq(<4 x i32>, <4 x i32>) nounwind readnone 786*9880d681SAndroid Build Coastguard Worker 787*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmulhrsw(<8 x i16> %a0, <8 x i16> %a1) { 788*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmulhrsw 789*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmulhrsw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 790*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}"() 791*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.ssse3.pmul.hr.sw.128(<8 x i16> %a0, <8 x i16> %a1) 792*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 793*9880d681SAndroid Build Coastguard Worker} 794*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.pmul.hr.sw.128(<8 x i16>, <8 x i16>) nounwind readnone 795*9880d681SAndroid Build Coastguard Worker 796*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmulhuw(<8 x i16> %a0, <8 x i16> %a1) { 797*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmulhuw 798*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmulhuw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 799*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}"() 800*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.pmulhu.w(<8 x i16> %a0, <8 x i16> %a1) 801*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 802*9880d681SAndroid Build Coastguard Worker} 803*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.pmulhu.w(<8 x i16>, <8 x i16>) nounwind readnone 804*9880d681SAndroid Build Coastguard Worker 805*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmulhw(<8 x i16> %a0, <8 x i16> %a1) { 806*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmulhw 807*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmulhw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 808*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}"() 809*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.pmulh.w(<8 x i16> %a0, <8 x i16> %a1) 810*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 811*9880d681SAndroid Build Coastguard Worker} 812*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.pmulh.w(<8 x i16>, <8 x i16>) nounwind readnone 813*9880d681SAndroid Build Coastguard Worker 814*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmulld(<4 x i32> %a0, <4 x i32> %a1) { 815*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmulld 816*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmulld {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 817*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}"() 818*9880d681SAndroid Build Coastguard Worker %2 = mul <4 x i32> %a0, %a1 819*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 820*9880d681SAndroid Build Coastguard Worker} 821*9880d681SAndroid Build Coastguard Worker 822*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmullw(<8 x i16> %a0, <8 x i16> %a1) { 823*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmullw 824*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmullw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 825*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}"() 826*9880d681SAndroid Build Coastguard Worker %2 = mul <8 x i16> %a0, %a1 827*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 828*9880d681SAndroid Build Coastguard Worker} 829*9880d681SAndroid Build Coastguard Worker 830*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmuludq(<4 x i32> %a0, <4 x i32> %a1) { 831*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmuludq 832*9880d681SAndroid Build Coastguard Worker ;CHECK: vpmuludq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 833*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}"() 834*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.sse2.pmulu.dq(<4 x i32> %a0, <4 x i32> %a1) 835*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 836*9880d681SAndroid Build Coastguard Worker} 837*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.sse2.pmulu.dq(<4 x i32>, <4 x i32>) nounwind readnone 838*9880d681SAndroid Build Coastguard Worker 839*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_por(<16 x i8> %a0, <16 x i8> %a1) { 840*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_por 841*9880d681SAndroid Build Coastguard Worker ;CHECK: vpor {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 842*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}"() 843*9880d681SAndroid Build Coastguard Worker %2 = or <16 x i8> %a0, %a1 844*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 845*9880d681SAndroid Build Coastguard Worker %3 = add <16 x i8> %2, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1> 846*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %3 847*9880d681SAndroid Build Coastguard Worker} 848*9880d681SAndroid Build Coastguard Worker 849*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_psadbw(<16 x i8> %a0, <16 x i8> %a1) { 850*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psadbw 851*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsadbw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 852*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}"() 853*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.sse2.psad.bw(<16 x i8> %a0, <16 x i8> %a1) 854*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 855*9880d681SAndroid Build Coastguard Worker} 856*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.sse2.psad.bw(<16 x i8>, <16 x i8>) nounwind readnone 857*9880d681SAndroid Build Coastguard Worker 858*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pshufb(<16 x i8> %a0, <16 x i8> %a1) { 859*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pshufb 860*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshufb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 861*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}"() 862*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.ssse3.pshuf.b.128(<16 x i8> %a0, <16 x i8> %a1) 863*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 864*9880d681SAndroid Build Coastguard Worker} 865*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.ssse3.pshuf.b.128(<16 x i8>, <16 x i8>) nounwind readnone 866*9880d681SAndroid Build Coastguard Worker 867*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pshufd(<4 x i32> %a0) { 868*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pshufd 869*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshufd $27, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 870*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}"() 871*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <4 x i32> %a0, <4 x i32> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0> 872*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 873*9880d681SAndroid Build Coastguard Worker} 874*9880d681SAndroid Build Coastguard Worker 875*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pshufhw(<8 x i16> %a0) { 876*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pshufhw 877*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshufhw $11, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 878*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}"() 879*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <8 x i16> %a0, <8 x i16> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 7, i32 6, i32 4, i32 4> 880*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 881*9880d681SAndroid Build Coastguard Worker} 882*9880d681SAndroid Build Coastguard Worker 883*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pshuflw(<8 x i16> %a0) { 884*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pshuflw 885*9880d681SAndroid Build Coastguard Worker ;CHECK: vpshuflw $27, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 886*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}"() 887*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <8 x i16> %a0, <8 x i16> undef, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 4, i32 5, i32 6, i32 7> 888*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 889*9880d681SAndroid Build Coastguard Worker} 890*9880d681SAndroid Build Coastguard Worker 891*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_psignb(<16 x i8> %a0, <16 x i8> %a1) { 892*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psignb 893*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsignb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 894*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}"() 895*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.ssse3.psign.b.128(<16 x i8> %a0, <16 x i8> %a1) 896*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 897*9880d681SAndroid Build Coastguard Worker} 898*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.ssse3.psign.b.128(<16 x i8>, <16 x i8>) nounwind readnone 899*9880d681SAndroid Build Coastguard Worker 900*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_psignd(<4 x i32> %a0, <4 x i32> %a1) { 901*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psignd 902*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsignd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 903*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}"() 904*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.ssse3.psign.d.128(<4 x i32> %a0, <4 x i32> %a1) 905*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 906*9880d681SAndroid Build Coastguard Worker} 907*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.ssse3.psign.d.128(<4 x i32>, <4 x i32>) nounwind readnone 908*9880d681SAndroid Build Coastguard Worker 909*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_psignw(<8 x i16> %a0, <8 x i16> %a1) { 910*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psignw 911*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsignw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 912*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}"() 913*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.ssse3.psign.w.128(<8 x i16> %a0, <8 x i16> %a1) 914*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 915*9880d681SAndroid Build Coastguard Worker} 916*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.psign.w.128(<8 x i16>, <8 x i16>) nounwind readnone 917*9880d681SAndroid Build Coastguard Worker 918*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pslld(<4 x i32> %a0, <4 x i32> %a1) { 919*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pslld 920*9880d681SAndroid Build Coastguard Worker ;CHECK: vpslld {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 921*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}"() 922*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.sse2.psll.d(<4 x i32> %a0, <4 x i32> %a1) 923*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 924*9880d681SAndroid Build Coastguard Worker} 925*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.sse2.psll.d(<4 x i32>, <4 x i32>) nounwind readnone 926*9880d681SAndroid Build Coastguard Worker 927*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_psllq(<2 x i64> %a0, <2 x i64> %a1) { 928*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psllq 929*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsllq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 930*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}"() 931*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.sse2.psll.q(<2 x i64> %a0, <2 x i64> %a1) 932*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 933*9880d681SAndroid Build Coastguard Worker} 934*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.sse2.psll.q(<2 x i64>, <2 x i64>) nounwind readnone 935*9880d681SAndroid Build Coastguard Worker 936*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_psllw(<8 x i16> %a0, <8 x i16> %a1) { 937*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psllw 938*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsllw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 939*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}"() 940*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.psll.w(<8 x i16> %a0, <8 x i16> %a1) 941*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 942*9880d681SAndroid Build Coastguard Worker} 943*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.psll.w(<8 x i16>, <8 x i16>) nounwind readnone 944*9880d681SAndroid Build Coastguard Worker 945*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_psrad(<4 x i32> %a0, <4 x i32> %a1) { 946*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psrad 947*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsrad {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 948*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}"() 949*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.sse2.psra.d(<4 x i32> %a0, <4 x i32> %a1) 950*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 951*9880d681SAndroid Build Coastguard Worker} 952*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.sse2.psra.d(<4 x i32>, <4 x i32>) nounwind readnone 953*9880d681SAndroid Build Coastguard Worker 954*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_psraw(<8 x i16> %a0, <8 x i16> %a1) { 955*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psraw 956*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsraw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 957*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}"() 958*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.psra.w(<8 x i16> %a0, <8 x i16> %a1) 959*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 960*9880d681SAndroid Build Coastguard Worker} 961*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.psra.w(<8 x i16>, <8 x i16>) nounwind readnone 962*9880d681SAndroid Build Coastguard Worker 963*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_psrld(<4 x i32> %a0, <4 x i32> %a1) { 964*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psrld 965*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsrld {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 966*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}"() 967*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.sse2.psrl.d(<4 x i32> %a0, <4 x i32> %a1) 968*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 969*9880d681SAndroid Build Coastguard Worker} 970*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.sse2.psrl.d(<4 x i32>, <4 x i32>) nounwind readnone 971*9880d681SAndroid Build Coastguard Worker 972*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_psrlq(<2 x i64> %a0, <2 x i64> %a1) { 973*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psrlq 974*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsrlq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 975*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}"() 976*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.sse2.psrl.q(<2 x i64> %a0, <2 x i64> %a1) 977*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 978*9880d681SAndroid Build Coastguard Worker} 979*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.sse2.psrl.q(<2 x i64>, <2 x i64>) nounwind readnone 980*9880d681SAndroid Build Coastguard Worker 981*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_psrlw(<8 x i16> %a0, <8 x i16> %a1) { 982*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psrlw 983*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsrlw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 984*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}"() 985*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.psrl.w(<8 x i16> %a0, <8 x i16> %a1) 986*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 987*9880d681SAndroid Build Coastguard Worker} 988*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.psrl.w(<8 x i16>, <8 x i16>) nounwind readnone 989*9880d681SAndroid Build Coastguard Worker 990*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_psubb(<16 x i8> %a0, <16 x i8> %a1) { 991*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubb 992*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsubb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 993*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}"() 994*9880d681SAndroid Build Coastguard Worker %2 = sub <16 x i8> %a0, %a1 995*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 996*9880d681SAndroid Build Coastguard Worker} 997*9880d681SAndroid Build Coastguard Worker 998*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_psubd(<4 x i32> %a0, <4 x i32> %a1) { 999*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubd 1000*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsubd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1001*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}"() 1002*9880d681SAndroid Build Coastguard Worker %2 = sub <4 x i32> %a0, %a1 1003*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 1004*9880d681SAndroid Build Coastguard Worker} 1005*9880d681SAndroid Build Coastguard Worker 1006*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_psubq(<2 x i64> %a0, <2 x i64> %a1) { 1007*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubq 1008*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsubq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1009*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}"() 1010*9880d681SAndroid Build Coastguard Worker %2 = sub <2 x i64> %a0, %a1 1011*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 1012*9880d681SAndroid Build Coastguard Worker} 1013*9880d681SAndroid Build Coastguard Worker 1014*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_psubsb(<16 x i8> %a0, <16 x i8> %a1) { 1015*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubsb 1016*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsubsb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1017*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}"() 1018*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse2.psubs.b(<16 x i8> %a0, <16 x i8> %a1) 1019*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 1020*9880d681SAndroid Build Coastguard Worker} 1021*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.psubs.b(<16 x i8>, <16 x i8>) nounwind readnone 1022*9880d681SAndroid Build Coastguard Worker 1023*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_psubsw(<8 x i16> %a0, <8 x i16> %a1) { 1024*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubsw 1025*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsubsw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1026*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}"() 1027*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.psubs.w(<8 x i16> %a0, <8 x i16> %a1) 1028*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 1029*9880d681SAndroid Build Coastguard Worker} 1030*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.psubs.w(<8 x i16>, <8 x i16>) nounwind readnone 1031*9880d681SAndroid Build Coastguard Worker 1032*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_psubusb(<16 x i8> %a0, <16 x i8> %a1) { 1033*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubusb 1034*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsubusb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1035*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}"() 1036*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse2.psubus.b(<16 x i8> %a0, <16 x i8> %a1) 1037*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 1038*9880d681SAndroid Build Coastguard Worker} 1039*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.psubus.b(<16 x i8>, <16 x i8>) nounwind readnone 1040*9880d681SAndroid Build Coastguard Worker 1041*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_psubusw(<8 x i16> %a0, <8 x i16> %a1) { 1042*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubusw 1043*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsubusw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1044*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}"() 1045*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.psubus.w(<8 x i16> %a0, <8 x i16> %a1) 1046*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 1047*9880d681SAndroid Build Coastguard Worker} 1048*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.psubus.w(<8 x i16>, <8 x i16>) nounwind readnone 1049*9880d681SAndroid Build Coastguard Worker 1050*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_psubw(<8 x i16> %a0, <8 x i16> %a1) { 1051*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubw 1052*9880d681SAndroid Build Coastguard Worker ;CHECK: vpsubw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1053*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}"() 1054*9880d681SAndroid Build Coastguard Worker %2 = sub <8 x i16> %a0, %a1 1055*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 1056*9880d681SAndroid Build Coastguard Worker} 1057*9880d681SAndroid Build Coastguard Worker 1058*9880d681SAndroid Build Coastguard Workerdefine i32 @stack_fold_ptest(<2 x i64> %a0, <2 x i64> %a1) { 1059*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_ptest 1060*9880d681SAndroid Build Coastguard Worker ;CHECK: vptest {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1061*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}"() 1062*9880d681SAndroid Build Coastguard Worker %2 = call i32 @llvm.x86.sse41.ptestc(<2 x i64> %a0, <2 x i64> %a1) 1063*9880d681SAndroid Build Coastguard Worker ret i32 %2 1064*9880d681SAndroid Build Coastguard Worker} 1065*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse41.ptestc(<2 x i64>, <2 x i64>) nounwind readnone 1066*9880d681SAndroid Build Coastguard Worker 1067*9880d681SAndroid Build Coastguard Workerdefine i32 @stack_fold_ptest_ymm(<4 x i64> %a0, <4 x i64> %a1) { 1068*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_ptest_ymm 1069*9880d681SAndroid Build Coastguard Worker ;CHECK: vptest {{-?[0-9]*}}(%rsp), {{%ymm[0-9][0-9]*}} {{.*#+}} 32-byte Folded Reload 1070*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}"() 1071*9880d681SAndroid Build Coastguard Worker %2 = call i32 @llvm.x86.avx.ptestc.256(<4 x i64> %a0, <4 x i64> %a1) 1072*9880d681SAndroid Build Coastguard Worker ret i32 %2 1073*9880d681SAndroid Build Coastguard Worker} 1074*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.avx.ptestc.256(<4 x i64>, <4 x i64>) nounwind readnone 1075*9880d681SAndroid Build Coastguard Worker 1076*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_punpckhbw(<16 x i8> %a0, <16 x i8> %a1) { 1077*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpckhbw 1078*9880d681SAndroid Build Coastguard Worker ;CHECK: vpunpckhbw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1079*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}"() 1080*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <16 x i8> %a0, <16 x i8> %a1, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31> 1081*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 1082*9880d681SAndroid Build Coastguard Worker} 1083*9880d681SAndroid Build Coastguard Worker 1084*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_punpckhdq(<4 x i32> %a0, <4 x i32> %a1) { 1085*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpckhdq 1086*9880d681SAndroid Build Coastguard Worker ;CHECK: vpunpckhdq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1087*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}"() 1088*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <4 x i32> %a0, <4 x i32> %a1, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 1089*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 1090*9880d681SAndroid Build Coastguard Worker %3 = add <4 x i32> %2, <i32 1, i32 1, i32 1, i32 1> 1091*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 1092*9880d681SAndroid Build Coastguard Worker} 1093*9880d681SAndroid Build Coastguard Worker 1094*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_punpckhqdq(<2 x i64> %a0, <2 x i64> %a1) { 1095*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpckhqdq 1096*9880d681SAndroid Build Coastguard Worker ;CHECK: vpunpckhqdq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1097*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}"() 1098*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <2 x i64> %a0, <2 x i64> %a1, <2 x i32> <i32 1, i32 3> 1099*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 1100*9880d681SAndroid Build Coastguard Worker %3 = add <2 x i64> %2, <i64 1, i64 1> 1101*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 1102*9880d681SAndroid Build Coastguard Worker} 1103*9880d681SAndroid Build Coastguard Worker 1104*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_punpckhwd(<8 x i16> %a0, <8 x i16> %a1) { 1105*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpckhwd 1106*9880d681SAndroid Build Coastguard Worker ;CHECK: vpunpckhwd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1107*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}"() 1108*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <8 x i16> %a0, <8 x i16> %a1, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15> 1109*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 1110*9880d681SAndroid Build Coastguard Worker} 1111*9880d681SAndroid Build Coastguard Worker 1112*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_punpcklbw(<16 x i8> %a0, <16 x i8> %a1) { 1113*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpcklbw 1114*9880d681SAndroid Build Coastguard Worker ;CHECK: vpunpcklbw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1115*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}"() 1116*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <16 x i8> %a0, <16 x i8> %a1, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23> 1117*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 1118*9880d681SAndroid Build Coastguard Worker} 1119*9880d681SAndroid Build Coastguard Worker 1120*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_punpckldq(<4 x i32> %a0, <4 x i32> %a1) { 1121*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpckldq 1122*9880d681SAndroid Build Coastguard Worker ;CHECK: vpunpckldq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1123*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}"() 1124*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <4 x i32> %a0, <4 x i32> %a1, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 1125*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 1126*9880d681SAndroid Build Coastguard Worker %3 = add <4 x i32> %2, <i32 1, i32 1, i32 1, i32 1> 1127*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 1128*9880d681SAndroid Build Coastguard Worker} 1129*9880d681SAndroid Build Coastguard Worker 1130*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_punpcklqdq(<2 x i64> %a0, <2 x i64> %a1) { 1131*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpcklqdq 1132*9880d681SAndroid Build Coastguard Worker ;CHECK: vpunpcklqdq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1133*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}"() 1134*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <2 x i64> %a0, <2 x i64> %a1, <2 x i32> <i32 0, i32 2> 1135*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 1136*9880d681SAndroid Build Coastguard Worker %3 = add <2 x i64> %2, <i64 1, i64 1> 1137*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 1138*9880d681SAndroid Build Coastguard Worker} 1139*9880d681SAndroid Build Coastguard Worker 1140*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_punpcklwd(<8 x i16> %a0, <8 x i16> %a1) { 1141*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpcklwd 1142*9880d681SAndroid Build Coastguard Worker ;CHECK: vpunpcklwd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1143*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}"() 1144*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <8 x i16> %a0, <8 x i16> %a1, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11> 1145*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 1146*9880d681SAndroid Build Coastguard Worker} 1147*9880d681SAndroid Build Coastguard Worker 1148*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pxor(<16 x i8> %a0, <16 x i8> %a1) { 1149*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pxor 1150*9880d681SAndroid Build Coastguard Worker ;CHECK: vpxor {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}}, {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1151*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}"() 1152*9880d681SAndroid Build Coastguard Worker %2 = xor <16 x i8> %a0, %a1 1153*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 1154*9880d681SAndroid Build Coastguard Worker %3 = add <16 x i8> %2, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1> 1155*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %3 1156*9880d681SAndroid Build Coastguard Worker} 1157