1*9880d681SAndroid Build Coastguard Worker; RUN: llc -O3 -disable-peephole -mtriple=x86_64-unknown-unknown -mattr=+sse4.2,+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: aesdec {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 14*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{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: aesdeclast {{-?[0-9]*}}(%rsp), {{%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: aesenc {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 32*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{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: aesenclast {{-?[0-9]*}}(%rsp), {{%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: aesimc {{-?[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: aeskeygenassist $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 Worker;TODO stack_fold_crc32_32_8 66*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse42.crc32.32.8(i32, i8) nounwind 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Worker;TODO stack_fold_crc32_32_16 69*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse42.crc32.32.16(i32, i16) nounwind 70*9880d681SAndroid Build Coastguard Worker 71*9880d681SAndroid Build Coastguard Workerdefine i32 @stack_fold_crc32_32_32(i32 %a0, i32 %a1) { 72*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_crc32_32_32 73*9880d681SAndroid Build Coastguard Worker ;CHECK: crc32l {{-?[0-9]*}}(%rsp), %eax {{.*#+}} 4-byte Folded Reload 74*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{rbx},~{rcx},~{rdx},~{rsi},~{rdi},~{rbp},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() 75*9880d681SAndroid Build Coastguard Worker %2 = call i32 @llvm.x86.sse42.crc32.32.32(i32 %a0, i32 %a1) 76*9880d681SAndroid Build Coastguard Worker ret i32 %2 77*9880d681SAndroid Build Coastguard Worker} 78*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse42.crc32.32.32(i32, i32) nounwind 79*9880d681SAndroid Build Coastguard Worker 80*9880d681SAndroid Build Coastguard Worker;TODO stack_fold_crc32_64_8 81*9880d681SAndroid Build Coastguard Workerdeclare i64 @llvm.x86.sse42.crc32.64.8(i64, i8) nounwind 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Workerdefine i64 @stack_fold_crc32_64_64(i64 %a0, i64 %a1) { 84*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_crc32_64_64 85*9880d681SAndroid Build Coastguard Worker ;CHECK: crc32q {{-?[0-9]*}}(%rsp), %rax {{.*#+}} 8-byte Folded Reload 86*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{rbx},~{rcx},~{rdx},~{rsi},~{rdi},~{rbp},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() 87*9880d681SAndroid Build Coastguard Worker %2 = call i64 @llvm.x86.sse42.crc32.64.64(i64 %a0, i64 %a1) 88*9880d681SAndroid Build Coastguard Worker ret i64 %2 89*9880d681SAndroid Build Coastguard Worker} 90*9880d681SAndroid Build Coastguard Workerdeclare i64 @llvm.x86.sse42.crc32.64.64(i64, i64) nounwind 91*9880d681SAndroid Build Coastguard Worker 92*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_movd_load(i32 %a0) { 93*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_movd_load 94*9880d681SAndroid Build Coastguard Worker ;CHECK: movd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 4-byte Folded Reload 95*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}"() 96*9880d681SAndroid Build Coastguard Worker %2 = insertelement <4 x i32> zeroinitializer, i32 %a0, i32 0 97*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 98*9880d681SAndroid Build Coastguard Worker %3 = add <4 x i32> %2, <i32 1, i32 1, i32 1, i32 1> 99*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 100*9880d681SAndroid Build Coastguard Worker} 101*9880d681SAndroid Build Coastguard Worker 102*9880d681SAndroid Build Coastguard Workerdefine i32 @stack_fold_movd_store(<4 x i32> %a0) { 103*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_movd_store 104*9880d681SAndroid Build Coastguard Worker ;CHECK: movd {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp) {{.*#+}} 4-byte Folded Spill 105*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 106*9880d681SAndroid Build Coastguard Worker %1 = add <4 x i32> %a0, <i32 1, i32 1, i32 1, i32 1> 107*9880d681SAndroid Build Coastguard Worker %2 = extractelement <4 x i32> %1, i32 0 108*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}"() 109*9880d681SAndroid Build Coastguard Worker ret i32 %2 110*9880d681SAndroid Build Coastguard Worker} 111*9880d681SAndroid Build Coastguard Worker 112*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_movq_load(<2 x i64> %a0) { 113*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_movq_load 114*9880d681SAndroid Build Coastguard Worker ;CHECK: movq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 115*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}"() 116*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <2 x i64> %a0, <2 x i64> zeroinitializer, <2 x i32> <i32 0, i32 2> 117*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 118*9880d681SAndroid Build Coastguard Worker %3 = add <2 x i64> %2, <i64 1, i64 1> 119*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 120*9880d681SAndroid Build Coastguard Worker} 121*9880d681SAndroid Build Coastguard Worker 122*9880d681SAndroid Build Coastguard Workerdefine i64 @stack_fold_movq_store(<2 x i64> %a0) { 123*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_movq_store 124*9880d681SAndroid Build Coastguard Worker ;CHECK: movq {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp) {{.*#+}} 8-byte Folded Spill 125*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 126*9880d681SAndroid Build Coastguard Worker %1 = add <2 x i64> %a0, <i64 1, i64 1> 127*9880d681SAndroid Build Coastguard Worker %2 = extractelement <2 x i64> %1, i32 0 128*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}"() 129*9880d681SAndroid Build Coastguard Worker ret i64 %2 130*9880d681SAndroid Build Coastguard Worker} 131*9880d681SAndroid Build Coastguard Worker 132*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_mpsadbw(<16 x i8> %a0, <16 x i8> %a1) { 133*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_mpsadbw 134*9880d681SAndroid Build Coastguard Worker ;CHECK: mpsadbw $7, {{-?[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,~{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.sse41.mpsadbw(<16 x i8> %a0, <16 x i8> %a1, i8 7) 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.sse41.mpsadbw(<16 x i8>, <16 x i8>, i8) nounwind readnone 140*9880d681SAndroid Build Coastguard Worker 141*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pabsb(<16 x i8> %a0) { 142*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pabsb 143*9880d681SAndroid Build Coastguard Worker ;CHECK: pabsb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 144*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}"() 145*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.ssse3.pabs.b.128(<16 x i8> %a0) 146*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 147*9880d681SAndroid Build Coastguard Worker} 148*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.ssse3.pabs.b.128(<16 x i8>) nounwind readnone 149*9880d681SAndroid Build Coastguard Worker 150*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pabsd(<4 x i32> %a0) { 151*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pabsd 152*9880d681SAndroid Build Coastguard Worker ;CHECK: pabsd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 153*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}"() 154*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.ssse3.pabs.d.128(<4 x i32> %a0) 155*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 156*9880d681SAndroid Build Coastguard Worker} 157*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.ssse3.pabs.d.128(<4 x i32>) nounwind readnone 158*9880d681SAndroid Build Coastguard Worker 159*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pabsw(<8 x i16> %a0) { 160*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pabsw 161*9880d681SAndroid Build Coastguard Worker ;CHECK: pabsw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 162*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}"() 163*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.ssse3.pabs.w.128(<8 x i16> %a0) 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.ssse3.pabs.w.128(<8 x i16>) nounwind readnone 167*9880d681SAndroid Build Coastguard Worker 168*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_packssdw(<4 x i32> %a0, <4 x i32> %a1) { 169*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_packssdw 170*9880d681SAndroid Build Coastguard Worker ;CHECK: packssdw {{-?[0-9]*}}(%rsp), {{%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 <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %a0, <4 x i32> %a1) 173*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 174*9880d681SAndroid Build Coastguard Worker} 175*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32>, <4 x i32>) nounwind readnone 176*9880d681SAndroid Build Coastguard Worker 177*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_packsswb(<8 x i16> %a0, <8 x i16> %a1) { 178*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_packsswb 179*9880d681SAndroid Build Coastguard Worker ;CHECK: packsswb {{-?[0-9]*}}(%rsp), {{%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 = call <16 x i8> @llvm.x86.sse2.packsswb.128(<8 x i16> %a0, <8 x i16> %a1) 182*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 183*9880d681SAndroid Build Coastguard Worker} 184*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.packsswb.128(<8 x i16>, <8 x i16>) nounwind readnone 185*9880d681SAndroid Build Coastguard Worker 186*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_packusdw(<4 x i32> %a0, <4 x i32> %a1) { 187*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_packusdw 188*9880d681SAndroid Build Coastguard Worker ;CHECK: packusdw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 189*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}"() 190*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse41.packusdw(<4 x i32> %a0, <4 x i32> %a1) 191*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 192*9880d681SAndroid Build Coastguard Worker} 193*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse41.packusdw(<4 x i32>, <4 x i32>) nounwind readnone 194*9880d681SAndroid Build Coastguard Worker 195*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_packuswb(<8 x i16> %a0, <8 x i16> %a1) { 196*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_packuswb 197*9880d681SAndroid Build Coastguard Worker ;CHECK: packuswb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 198*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}"() 199*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16> %a0, <8 x i16> %a1) 200*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 201*9880d681SAndroid Build Coastguard Worker} 202*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16>, <8 x i16>) nounwind readnone 203*9880d681SAndroid Build Coastguard Worker 204*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_paddb(<16 x i8> %a0, <16 x i8> %a1) { 205*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddb 206*9880d681SAndroid Build Coastguard Worker ;CHECK: paddb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 207*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}"() 208*9880d681SAndroid Build Coastguard Worker %2 = add <16 x i8> %a0, %a1 209*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 210*9880d681SAndroid Build Coastguard Worker} 211*9880d681SAndroid Build Coastguard Worker 212*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_paddd(<4 x i32> %a0, <4 x i32> %a1) { 213*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddd 214*9880d681SAndroid Build Coastguard Worker ;CHECK: paddd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 215*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}"() 216*9880d681SAndroid Build Coastguard Worker %2 = add <4 x i32> %a0, %a1 217*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 218*9880d681SAndroid Build Coastguard Worker} 219*9880d681SAndroid Build Coastguard Worker 220*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_paddq(<2 x i64> %a0, <2 x i64> %a1) { 221*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddq 222*9880d681SAndroid Build Coastguard Worker ;CHECK: paddq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 223*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}"() 224*9880d681SAndroid Build Coastguard Worker %2 = add <2 x i64> %a0, %a1 225*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 226*9880d681SAndroid Build Coastguard Worker} 227*9880d681SAndroid Build Coastguard Worker 228*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_paddsb(<16 x i8> %a0, <16 x i8> %a1) { 229*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddsb 230*9880d681SAndroid Build Coastguard Worker ;CHECK: paddsb {{-?[0-9]*}}(%rsp), {{%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 <16 x i8> @llvm.x86.sse2.padds.b(<16 x i8> %a0, <16 x i8> %a1) 233*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 234*9880d681SAndroid Build Coastguard Worker} 235*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.padds.b(<16 x i8>, <16 x i8>) nounwind readnone 236*9880d681SAndroid Build Coastguard Worker 237*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_paddsw(<8 x i16> %a0, <8 x i16> %a1) { 238*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddsw 239*9880d681SAndroid Build Coastguard Worker ;CHECK: paddsw {{-?[0-9]*}}(%rsp), {{%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 = call <8 x i16> @llvm.x86.sse2.padds.w(<8 x i16> %a0, <8 x i16> %a1) 242*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 243*9880d681SAndroid Build Coastguard Worker} 244*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.padds.w(<8 x i16>, <8 x i16>) nounwind readnone 245*9880d681SAndroid Build Coastguard Worker 246*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_paddusb(<16 x i8> %a0, <16 x i8> %a1) { 247*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddusb 248*9880d681SAndroid Build Coastguard Worker ;CHECK: paddusb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 249*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}"() 250*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse2.paddus.b(<16 x i8> %a0, <16 x i8> %a1) 251*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 252*9880d681SAndroid Build Coastguard Worker} 253*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.paddus.b(<16 x i8>, <16 x i8>) nounwind readnone 254*9880d681SAndroid Build Coastguard Worker 255*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_paddusw(<8 x i16> %a0, <8 x i16> %a1) { 256*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddusw 257*9880d681SAndroid Build Coastguard Worker ;CHECK: paddusw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 258*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}"() 259*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.paddus.w(<8 x i16> %a0, <8 x i16> %a1) 260*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 261*9880d681SAndroid Build Coastguard Worker} 262*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.paddus.w(<8 x i16>, <8 x i16>) nounwind readnone 263*9880d681SAndroid Build Coastguard Worker 264*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_paddw(<8 x i16> %a0, <8 x i16> %a1) { 265*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_paddw 266*9880d681SAndroid Build Coastguard Worker ;CHECK: paddw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 267*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}"() 268*9880d681SAndroid Build Coastguard Worker %2 = add <8 x i16> %a0, %a1 269*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 270*9880d681SAndroid Build Coastguard Worker} 271*9880d681SAndroid Build Coastguard Worker 272*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_palignr(<16 x i8> %a0, <16 x i8> %a1) { 273*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_palignr 274*9880d681SAndroid Build Coastguard Worker ;CHECK: palignr $1, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 275*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}"() 276*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> 277*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 278*9880d681SAndroid Build Coastguard Worker} 279*9880d681SAndroid Build Coastguard Worker 280*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pand(<16 x i8> %a0, <16 x i8> %a1) { 281*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pand 282*9880d681SAndroid Build Coastguard Worker ;CHECK: pand {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 283*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}"() 284*9880d681SAndroid Build Coastguard Worker %2 = and <16 x i8> %a0, %a1 285*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 286*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> 287*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %3 288*9880d681SAndroid Build Coastguard Worker} 289*9880d681SAndroid Build Coastguard Worker 290*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pandn(<16 x i8> %a0, <16 x i8> %a1) { 291*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pandn 292*9880d681SAndroid Build Coastguard Worker ;CHECK: pandn {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 293*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}"() 294*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> 295*9880d681SAndroid Build Coastguard Worker %3 = and <16 x i8> %2, %a1 296*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 297*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> 298*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %4 299*9880d681SAndroid Build Coastguard Worker} 300*9880d681SAndroid Build Coastguard Worker 301*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pavgb(<16 x i8> %a0, <16 x i8> %a1) { 302*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pavgb 303*9880d681SAndroid Build Coastguard Worker ;CHECK: pavgb {{-?[0-9]*}}(%rsp), {{%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 <16 x i8> @llvm.x86.sse2.pavg.b(<16 x i8> %a0, <16 x i8> %a1) 306*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 307*9880d681SAndroid Build Coastguard Worker} 308*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.pavg.b(<16 x i8>, <16 x i8>) nounwind readnone 309*9880d681SAndroid Build Coastguard Worker 310*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pavgw(<8 x i16> %a0, <8 x i16> %a1) { 311*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pavgw 312*9880d681SAndroid Build Coastguard Worker ;CHECK: pavgw {{-?[0-9]*}}(%rsp), {{%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 <8 x i16> @llvm.x86.sse2.pavg.w(<8 x i16> %a0, <8 x i16> %a1) 315*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 316*9880d681SAndroid Build Coastguard Worker} 317*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.pavg.w(<8 x i16>, <8 x i16>) nounwind readnone 318*9880d681SAndroid Build Coastguard Worker 319*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pblendvb(<16 x i8> %a0, <16 x i8> %a1, <16 x i8> %c) { 320*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pblendvb 321*9880d681SAndroid Build Coastguard Worker ;CHECK: pblendvb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 322*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}"() 323*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) 324*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 325*9880d681SAndroid Build Coastguard Worker} 326*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse41.pblendvb(<16 x i8>, <16 x i8>, <16 x i8>) nounwind readnone 327*9880d681SAndroid Build Coastguard Worker 328*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pblendw(<8 x i16> %a0, <8 x i16> %a1) { 329*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pblendw 330*9880d681SAndroid Build Coastguard Worker ;CHECK: pblendw $7, {{-?[0-9]*}}(%rsp), {{%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 = call <8 x i16> @llvm.x86.sse41.pblendw(<8 x i16> %a0, <8 x i16> %a1, i8 7) 333*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 334*9880d681SAndroid Build Coastguard Worker} 335*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse41.pblendw(<8 x i16>, <8 x i16>, i8) nounwind readnone 336*9880d681SAndroid Build Coastguard Worker 337*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pclmulqdq(<2 x i64> %a0, <2 x i64> %a1) { 338*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pclmulqdq 339*9880d681SAndroid Build Coastguard Worker ;CHECK: pclmulqdq $0, {{-?[0-9]*}}(%rsp), {{%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 = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> %a0, <2 x i64> %a1, i8 0) 342*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 343*9880d681SAndroid Build Coastguard Worker} 344*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.pclmulqdq(<2 x i64>, <2 x i64>, i8) nounwind readnone 345*9880d681SAndroid Build Coastguard Worker 346*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pcmpeqb(<16 x i8> %a0, <16 x i8> %a1) { 347*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpeqb 348*9880d681SAndroid Build Coastguard Worker ;CHECK: pcmpeqb {{-?[0-9]*}}(%rsp), {{%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 <16 x i8> %a0, %a1 351*9880d681SAndroid Build Coastguard Worker %3 = sext <16 x i1> %2 to <16 x i8> 352*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %3 353*9880d681SAndroid Build Coastguard Worker} 354*9880d681SAndroid Build Coastguard Worker 355*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pcmpeqd(<4 x i32> %a0, <4 x i32> %a1) { 356*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpeqd 357*9880d681SAndroid Build Coastguard Worker ;CHECK: pcmpeqd {{-?[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},~{flags}"() 359*9880d681SAndroid Build Coastguard Worker %2 = icmp eq <4 x i32> %a0, %a1 360*9880d681SAndroid Build Coastguard Worker %3 = sext <4 x i1> %2 to <4 x i32> 361*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 362*9880d681SAndroid Build Coastguard Worker} 363*9880d681SAndroid Build Coastguard Worker 364*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pcmpeqq(<2 x i64> %a0, <2 x i64> %a1) { 365*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpeqq 366*9880d681SAndroid Build Coastguard Worker ;CHECK: pcmpeqq {{-?[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},~{flags}"() 368*9880d681SAndroid Build Coastguard Worker %2 = icmp eq <2 x i64> %a0, %a1 369*9880d681SAndroid Build Coastguard Worker %3 = sext <2 x i1> %2 to <2 x i64> 370*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 371*9880d681SAndroid Build Coastguard Worker} 372*9880d681SAndroid Build Coastguard Worker 373*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pcmpeqw(<8 x i16> %a0, <8 x i16> %a1) { 374*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpeqw 375*9880d681SAndroid Build Coastguard Worker ;CHECK: pcmpeqw {{-?[0-9]*}}(%rsp), {{%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 eq <8 x i16> %a0, %a1 378*9880d681SAndroid Build Coastguard Worker %3 = sext <8 x i1> %2 to <8 x i16> 379*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %3 380*9880d681SAndroid Build Coastguard Worker} 381*9880d681SAndroid Build Coastguard Worker 382*9880d681SAndroid Build Coastguard Workerdefine i32 @stack_fold_pcmpestri(<16 x i8> %a0, <16 x i8> %a1) { 383*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpestri 384*9880d681SAndroid Build Coastguard Worker ;CHECK: pcmpestri $7, {{-?[0-9]*}}(%rsp), {{%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},~{rax},~{flags}"() 386*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) 387*9880d681SAndroid Build Coastguard Worker ret i32 %2 388*9880d681SAndroid Build Coastguard Worker} 389*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse42.pcmpestri128(<16 x i8>, i32, <16 x i8>, i32, i8) nounwind readnone 390*9880d681SAndroid Build Coastguard Worker 391*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pcmpestrm(<16 x i8> %a0, <16 x i8> %a1) { 392*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpestrm 393*9880d681SAndroid Build Coastguard Worker ;CHECK: pcmpestrm $7, {{-?[0-9]*}}(%rsp), {{%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},~{rax},~{flags}"() 395*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) 396*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 397*9880d681SAndroid Build Coastguard Worker} 398*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse42.pcmpestrm128(<16 x i8>, i32, <16 x i8>, i32, i8) nounwind readnone 399*9880d681SAndroid Build Coastguard Worker 400*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pcmpgtb(<16 x i8> %a0, <16 x i8> %a1) { 401*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpgtb 402*9880d681SAndroid Build Coastguard Worker ;CHECK: pcmpgtb {{-?[0-9]*}}(%rsp), {{%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 <16 x i8> %a0, %a1 405*9880d681SAndroid Build Coastguard Worker %3 = sext <16 x i1> %2 to <16 x i8> 406*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %3 407*9880d681SAndroid Build Coastguard Worker} 408*9880d681SAndroid Build Coastguard Worker 409*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pcmpgtd(<4 x i32> %a0, <4 x i32> %a1) { 410*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpgtd 411*9880d681SAndroid Build Coastguard Worker ;CHECK: pcmpgtd {{-?[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 = icmp sgt <4 x i32> %a0, %a1 414*9880d681SAndroid Build Coastguard Worker %3 = sext <4 x i1> %2 to <4 x i32> 415*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 416*9880d681SAndroid Build Coastguard Worker} 417*9880d681SAndroid Build Coastguard Worker 418*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pcmpgtq(<2 x i64> %a0, <2 x i64> %a1) { 419*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpgtq 420*9880d681SAndroid Build Coastguard Worker ;CHECK: pcmpgtq {{-?[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 = icmp sgt <2 x i64> %a0, %a1 423*9880d681SAndroid Build Coastguard Worker %3 = sext <2 x i1> %2 to <2 x i64> 424*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 425*9880d681SAndroid Build Coastguard Worker} 426*9880d681SAndroid Build Coastguard Worker 427*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pcmpgtw(<8 x i16> %a0, <8 x i16> %a1) { 428*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpgtw 429*9880d681SAndroid Build Coastguard Worker ;CHECK: pcmpgtw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 430*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}"() 431*9880d681SAndroid Build Coastguard Worker %2 = icmp sgt <8 x i16> %a0, %a1 432*9880d681SAndroid Build Coastguard Worker %3 = sext <8 x i1> %2 to <8 x i16> 433*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %3 434*9880d681SAndroid Build Coastguard Worker} 435*9880d681SAndroid Build Coastguard Worker 436*9880d681SAndroid Build Coastguard Workerdefine i32 @stack_fold_pcmpistri(<16 x i8> %a0, <16 x i8> %a1) { 437*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpistri 438*9880d681SAndroid Build Coastguard Worker ;CHECK: pcmpistri $7, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 439*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}"() 440*9880d681SAndroid Build Coastguard Worker %2 = call i32 @llvm.x86.sse42.pcmpistri128(<16 x i8> %a0, <16 x i8> %a1, i8 7) 441*9880d681SAndroid Build Coastguard Worker ret i32 %2 442*9880d681SAndroid Build Coastguard Worker} 443*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse42.pcmpistri128(<16 x i8>, <16 x i8>, i8) nounwind readnone 444*9880d681SAndroid Build Coastguard Worker 445*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pcmpistrm(<16 x i8> %a0, <16 x i8> %a1) { 446*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pcmpistrm 447*9880d681SAndroid Build Coastguard Worker ;CHECK: pcmpistrm $7, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 448*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}"() 449*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse42.pcmpistrm128(<16 x i8> %a0, <16 x i8> %a1, i8 7) 450*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 451*9880d681SAndroid Build Coastguard Worker} 452*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse42.pcmpistrm128(<16 x i8>, <16 x i8>, i8) nounwind readnone 453*9880d681SAndroid Build Coastguard Worker 454*9880d681SAndroid Build Coastguard Worker; TODO stack_fold_pextrb 455*9880d681SAndroid Build Coastguard Worker 456*9880d681SAndroid Build Coastguard Workerdefine i32 @stack_fold_pextrd(<4 x i32> %a0) { 457*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pextrd 458*9880d681SAndroid Build Coastguard Worker ;CHECK: pextrd $1, {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp) {{.*#+}} 4-byte Folded Spill 459*9880d681SAndroid Build Coastguard Worker ;CHECK: movl {{-?[0-9]*}}(%rsp), %eax {{.*#+}} 4-byte Reload 460*9880d681SAndroid Build Coastguard Worker %1 = extractelement <4 x i32> %a0, i32 1 461*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}"() 462*9880d681SAndroid Build Coastguard Worker ret i32 %1 463*9880d681SAndroid Build Coastguard Worker} 464*9880d681SAndroid Build Coastguard Worker 465*9880d681SAndroid Build Coastguard Workerdefine i64 @stack_fold_pextrq(<2 x i64> %a0) { 466*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pextrq 467*9880d681SAndroid Build Coastguard Worker ;CHECK: pextrq $1, {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp) {{.*#+}} 8-byte Folded Spill 468*9880d681SAndroid Build Coastguard Worker ;CHECK: movq {{-?[0-9]*}}(%rsp), %rax {{.*#+}} 8-byte Reload 469*9880d681SAndroid Build Coastguard Worker %1 = extractelement <2 x i64> %a0, i32 1 470*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}"() 471*9880d681SAndroid Build Coastguard Worker ret i64 %1 472*9880d681SAndroid Build Coastguard Worker} 473*9880d681SAndroid Build Coastguard Worker 474*9880d681SAndroid Build Coastguard Worker; TODO stack_fold_pextrw 475*9880d681SAndroid Build Coastguard Worker 476*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_phaddd(<4 x i32> %a0, <4 x i32> %a1) { 477*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_phaddd 478*9880d681SAndroid Build Coastguard Worker ;CHECK: phaddd {{-?[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,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 480*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.ssse3.phadd.d.128(<4 x i32> %a0, <4 x i32> %a1) 481*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 482*9880d681SAndroid Build Coastguard Worker} 483*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.ssse3.phadd.d.128(<4 x i32>, <4 x i32>) nounwind readnone 484*9880d681SAndroid Build Coastguard Worker 485*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_phaddsw(<8 x i16> %a0, <8 x i16> %a1) { 486*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_phaddsw 487*9880d681SAndroid Build Coastguard Worker ;CHECK: phaddsw {{-?[0-9]*}}(%rsp), {{%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 <8 x i16> @llvm.x86.ssse3.phadd.sw.128(<8 x i16> %a0, <8 x i16> %a1) 490*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 491*9880d681SAndroid Build Coastguard Worker} 492*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.phadd.sw.128(<8 x i16>, <8 x i16>) nounwind readnone 493*9880d681SAndroid Build Coastguard Worker 494*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_phaddw(<8 x i16> %a0, <8 x i16> %a1) { 495*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_phaddw 496*9880d681SAndroid Build Coastguard Worker ;CHECK: phaddw {{-?[0-9]*}}(%rsp), {{%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.phadd.w.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.phadd.w.128(<8 x i16>, <8 x i16>) nounwind readnone 502*9880d681SAndroid Build Coastguard Worker 503*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_phminposuw(<8 x i16> %a0) { 504*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_phminposuw 505*9880d681SAndroid Build Coastguard Worker ;CHECK: phminposuw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 506*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}"() 507*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse41.phminposuw(<8 x i16> %a0) 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.sse41.phminposuw(<8 x i16>) nounwind readnone 511*9880d681SAndroid Build Coastguard Worker 512*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_phsubd(<4 x i32> %a0, <4 x i32> %a1) { 513*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_phsubd 514*9880d681SAndroid Build Coastguard Worker ;CHECK: phsubd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 515*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}"() 516*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.ssse3.phsub.d.128(<4 x i32> %a0, <4 x i32> %a1) 517*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 518*9880d681SAndroid Build Coastguard Worker} 519*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.ssse3.phsub.d.128(<4 x i32>, <4 x i32>) nounwind readnone 520*9880d681SAndroid Build Coastguard Worker 521*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_phsubsw(<8 x i16> %a0, <8 x i16> %a1) { 522*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_phsubsw 523*9880d681SAndroid Build Coastguard Worker ;CHECK: phsubsw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 524*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}"() 525*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.ssse3.phsub.sw.128(<8 x i16> %a0, <8 x i16> %a1) 526*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 527*9880d681SAndroid Build Coastguard Worker} 528*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.phsub.sw.128(<8 x i16>, <8 x i16>) nounwind readnone 529*9880d681SAndroid Build Coastguard Worker 530*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_phsubw(<8 x i16> %a0, <8 x i16> %a1) { 531*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_phsubw 532*9880d681SAndroid Build Coastguard Worker ;CHECK: phsubw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 533*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}"() 534*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.ssse3.phsub.w.128(<8 x i16> %a0, <8 x i16> %a1) 535*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 536*9880d681SAndroid Build Coastguard Worker} 537*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.phsub.w.128(<8 x i16>, <8 x i16>) nounwind readnone 538*9880d681SAndroid Build Coastguard Worker 539*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pinsrb(<16 x i8> %a0, i8 %a1) { 540*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pinsrb 541*9880d681SAndroid Build Coastguard Worker ;CHECK: pinsrb $1, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 4-byte Folded Reload 542*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}"() 543*9880d681SAndroid Build Coastguard Worker %2 = insertelement <16 x i8> %a0, i8 %a1, i32 1 544*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 545*9880d681SAndroid Build Coastguard Worker} 546*9880d681SAndroid Build Coastguard Worker 547*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pinsrd(<4 x i32> %a0, i32 %a1) { 548*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pinsrd 549*9880d681SAndroid Build Coastguard Worker ;CHECK: pinsrd $1, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 4-byte Folded Reload 550*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}"() 551*9880d681SAndroid Build Coastguard Worker %2 = insertelement <4 x i32> %a0, i32 %a1, i32 1 552*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 553*9880d681SAndroid Build Coastguard Worker} 554*9880d681SAndroid Build Coastguard Worker 555*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pinsrq(<2 x i64> %a0, i64 %a1) { 556*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pinsrq 557*9880d681SAndroid Build Coastguard Worker ;CHECK: pinsrq $1, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 8-byte Folded Reload 558*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}"() 559*9880d681SAndroid Build Coastguard Worker %2 = insertelement <2 x i64> %a0, i64 %a1, i32 1 560*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 561*9880d681SAndroid Build Coastguard Worker} 562*9880d681SAndroid Build Coastguard Worker 563*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pinsrw(<8 x i16> %a0, i16 %a1) { 564*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pinsrw 565*9880d681SAndroid Build Coastguard Worker ;CHECK: pinsrw $1, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 4-byte Folded Reload 566*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}"() 567*9880d681SAndroid Build Coastguard Worker %2 = insertelement <8 x i16> %a0, i16 %a1, i32 1 568*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 569*9880d681SAndroid Build Coastguard Worker} 570*9880d681SAndroid Build Coastguard Worker 571*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmaddubsw(<16 x i8> %a0, <16 x i8> %a1) { 572*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaddubsw 573*9880d681SAndroid Build Coastguard Worker ;CHECK: pmaddubsw {{-?[0-9]*}}(%rsp), {{%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 <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128(<16 x i8> %a0, <16 x i8> %a1) 576*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 577*9880d681SAndroid Build Coastguard Worker} 578*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128(<16 x i8>, <16 x i8>) nounwind readnone 579*9880d681SAndroid Build Coastguard Worker 580*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmaddwd(<8 x i16> %a0, <8 x i16> %a1) { 581*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaddwd 582*9880d681SAndroid Build Coastguard Worker ;CHECK: pmaddwd {{-?[0-9]*}}(%rsp), {{%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 <4 x i32> @llvm.x86.sse2.pmadd.wd(<8 x i16> %a0, <8 x i16> %a1) 585*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 586*9880d681SAndroid Build Coastguard Worker} 587*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.sse2.pmadd.wd(<8 x i16>, <8 x i16>) nounwind readnone 588*9880d681SAndroid Build Coastguard Worker 589*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pmaxsb(<16 x i8> %a0, <16 x i8> %a1) { 590*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaxsb 591*9880d681SAndroid Build Coastguard Worker ;CHECK: pmaxsb {{-?[0-9]*}}(%rsp), {{%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.sse41.pmaxsb(<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.sse41.pmaxsb(<16 x i8>, <16 x i8>) nounwind readnone 597*9880d681SAndroid Build Coastguard Worker 598*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmaxsd(<4 x i32> %a0, <4 x i32> %a1) { 599*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaxsd 600*9880d681SAndroid Build Coastguard Worker ;CHECK: pmaxsd {{-?[0-9]*}}(%rsp), {{%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.pmaxsd(<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.pmaxsd(<4 x i32>, <4 x i32>) nounwind readnone 606*9880d681SAndroid Build Coastguard Worker 607*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmaxsw(<8 x i16> %a0, <8 x i16> %a1) { 608*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaxsw 609*9880d681SAndroid Build Coastguard Worker ;CHECK: pmaxsw {{-?[0-9]*}}(%rsp), {{%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.sse2.pmaxs.w(<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.sse2.pmaxs.w(<8 x i16>, <8 x i16>) nounwind readnone 615*9880d681SAndroid Build Coastguard Worker 616*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pmaxub(<16 x i8> %a0, <16 x i8> %a1) { 617*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaxub 618*9880d681SAndroid Build Coastguard Worker ;CHECK: pmaxub {{-?[0-9]*}}(%rsp), {{%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.sse2.pmaxu.b(<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.sse2.pmaxu.b(<16 x i8>, <16 x i8>) nounwind readnone 624*9880d681SAndroid Build Coastguard Worker 625*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmaxud(<4 x i32> %a0, <4 x i32> %a1) { 626*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaxud 627*9880d681SAndroid Build Coastguard Worker ;CHECK: pmaxud {{-?[0-9]*}}(%rsp), {{%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.pmaxud(<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.pmaxud(<4 x i32>, <4 x i32>) nounwind readnone 633*9880d681SAndroid Build Coastguard Worker 634*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmaxuw(<8 x i16> %a0, <8 x i16> %a1) { 635*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmaxuw 636*9880d681SAndroid Build Coastguard Worker ;CHECK: pmaxuw {{-?[0-9]*}}(%rsp), {{%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.sse41.pmaxuw(<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.sse41.pmaxuw(<8 x i16>, <8 x i16>) nounwind readnone 642*9880d681SAndroid Build Coastguard Worker 643*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pminsb(<16 x i8> %a0, <16 x i8> %a1) { 644*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pminsb 645*9880d681SAndroid Build Coastguard Worker ;CHECK: pminsb {{-?[0-9]*}}(%rsp), {{%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.sse41.pminsb(<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.sse41.pminsb(<16 x i8>, <16 x i8>) nounwind readnone 651*9880d681SAndroid Build Coastguard Worker 652*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pminsd(<4 x i32> %a0, <4 x i32> %a1) { 653*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pminsd 654*9880d681SAndroid Build Coastguard Worker ;CHECK: pminsd {{-?[0-9]*}}(%rsp), {{%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.pminsd(<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.pminsd(<4 x i32>, <4 x i32>) nounwind readnone 660*9880d681SAndroid Build Coastguard Worker 661*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pminsw(<8 x i16> %a0, <8 x i16> %a1) { 662*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pminsw 663*9880d681SAndroid Build Coastguard Worker ;CHECK: pminsw {{-?[0-9]*}}(%rsp), {{%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.sse2.pmins.w(<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.sse2.pmins.w(<8 x i16>, <8 x i16>) nounwind readnone 669*9880d681SAndroid Build Coastguard Worker 670*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pminub(<16 x i8> %a0, <16 x i8> %a1) { 671*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pminub 672*9880d681SAndroid Build Coastguard Worker ;CHECK: pminub {{-?[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,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 674*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse2.pminu.b(<16 x i8> %a0, <16 x i8> %a1) 675*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 676*9880d681SAndroid Build Coastguard Worker} 677*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.pminu.b(<16 x i8>, <16 x i8>) nounwind readnone 678*9880d681SAndroid Build Coastguard Worker 679*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pminud(<4 x i32> %a0, <4 x i32> %a1) { 680*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pminud 681*9880d681SAndroid Build Coastguard Worker ;CHECK: pminud {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 682*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 683*9880d681SAndroid Build Coastguard Worker %2 = call <4 x i32> @llvm.x86.sse41.pminud(<4 x i32> %a0, <4 x i32> %a1) 684*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 685*9880d681SAndroid Build Coastguard Worker} 686*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.sse41.pminud(<4 x i32>, <4 x i32>) nounwind readnone 687*9880d681SAndroid Build Coastguard Worker 688*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pminuw(<8 x i16> %a0, <8 x i16> %a1) { 689*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pminuw 690*9880d681SAndroid Build Coastguard Worker ;CHECK: pminuw {{-?[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,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() 692*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse41.pminuw(<8 x i16> %a0, <8 x i16> %a1) 693*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 694*9880d681SAndroid Build Coastguard Worker} 695*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse41.pminuw(<8 x i16>, <8 x i16>) nounwind readnone 696*9880d681SAndroid Build Coastguard Worker 697*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmovsxbd(<16 x i8> %a0) { 698*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovsxbd 699*9880d681SAndroid Build Coastguard Worker ;CHECK: pmovsxbd {{-?[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 <16 x i8> %a0, <16 x i8> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3> 702*9880d681SAndroid Build Coastguard Worker %3 = sext <4 x i8> %2 to <4 x i32> 703*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 704*9880d681SAndroid Build Coastguard Worker} 705*9880d681SAndroid Build Coastguard Worker 706*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmovsxbq(<16 x i8> %a0) { 707*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovsxbq 708*9880d681SAndroid Build Coastguard Worker ;CHECK: pmovsxbq {{-?[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 <16 x i8> %a0, <16 x i8> undef, <2 x i32> <i32 0, i32 1> 711*9880d681SAndroid Build Coastguard Worker %3 = sext <2 x i8> %2 to <2 x i64> 712*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 713*9880d681SAndroid Build Coastguard Worker} 714*9880d681SAndroid Build Coastguard Worker 715*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmovsxbw(<16 x i8> %a0) { 716*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovsxbw 717*9880d681SAndroid Build Coastguard Worker ;CHECK: pmovsxbw {{-?[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 <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> 720*9880d681SAndroid Build Coastguard Worker %3 = sext <8 x i8> %2 to <8 x i16> 721*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %3 722*9880d681SAndroid Build Coastguard Worker} 723*9880d681SAndroid Build Coastguard Worker 724*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmovsxdq(<4 x i32> %a0) { 725*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovsxdq 726*9880d681SAndroid Build Coastguard Worker ;CHECK: pmovsxdq {{-?[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 <4 x i32> %a0, <4 x i32> undef, <2 x i32> <i32 0, i32 1> 729*9880d681SAndroid Build Coastguard Worker %3 = sext <2 x i32> %2 to <2 x i64> 730*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 731*9880d681SAndroid Build Coastguard Worker} 732*9880d681SAndroid Build Coastguard Worker 733*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmovsxwd(<8 x i16> %a0) { 734*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovsxwd 735*9880d681SAndroid Build Coastguard Worker ;CHECK: pmovsxwd {{-?[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 <8 x i16> %a0, <8 x i16> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3> 738*9880d681SAndroid Build Coastguard Worker %3 = sext <4 x i16> %2 to <4 x i32> 739*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 740*9880d681SAndroid Build Coastguard Worker} 741*9880d681SAndroid Build Coastguard Worker 742*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmovsxwq(<8 x i16> %a0) { 743*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovsxwq 744*9880d681SAndroid Build Coastguard Worker ;CHECK: pmovsxwq {{-?[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 <8 x i16> %a0, <8 x i16> undef, <2 x i32> <i32 0, i32 1> 747*9880d681SAndroid Build Coastguard Worker %3 = sext <2 x i16> %2 to <2 x i64> 748*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 749*9880d681SAndroid Build Coastguard Worker} 750*9880d681SAndroid Build Coastguard Worker 751*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmovzxbd(<16 x i8> %a0) { 752*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovzxbd 753*9880d681SAndroid Build Coastguard Worker ;CHECK: pmovzxbd {{-?[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 <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> 756*9880d681SAndroid Build Coastguard Worker %3 = bitcast <16 x i8> %2 to <4 x i32> 757*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 758*9880d681SAndroid Build Coastguard Worker} 759*9880d681SAndroid Build Coastguard Worker 760*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmovzxbq(<16 x i8> %a0) { 761*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovzxbq 762*9880d681SAndroid Build Coastguard Worker ;CHECK: pmovzxbq {{-?[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 <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> 765*9880d681SAndroid Build Coastguard Worker %3 = bitcast <16 x i8> %2 to <2 x i64> 766*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 767*9880d681SAndroid Build Coastguard Worker} 768*9880d681SAndroid Build Coastguard Worker 769*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmovzxbw(<16 x i8> %a0) { 770*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovzxbw 771*9880d681SAndroid Build Coastguard Worker ;CHECK: pmovzxbw {{-?[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 <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> 774*9880d681SAndroid Build Coastguard Worker %3 = bitcast <16 x i8> %2 to <8 x i16> 775*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %3 776*9880d681SAndroid Build Coastguard Worker} 777*9880d681SAndroid Build Coastguard Worker 778*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmovzxdq(<4 x i32> %a0) { 779*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovzxdq 780*9880d681SAndroid Build Coastguard Worker ;CHECK: pmovzxdq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 781*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}"() 782*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> 783*9880d681SAndroid Build Coastguard Worker %3 = bitcast <4 x i32> %2 to <2 x i64> 784*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 785*9880d681SAndroid Build Coastguard Worker} 786*9880d681SAndroid Build Coastguard Worker 787*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmovzxwd(<8 x i16> %a0) { 788*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovzxwd 789*9880d681SAndroid Build Coastguard Worker ;CHECK: pmovzxwd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 790*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}"() 791*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> 792*9880d681SAndroid Build Coastguard Worker %3 = bitcast <8 x i16> %2 to <4 x i32> 793*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 794*9880d681SAndroid Build Coastguard Worker} 795*9880d681SAndroid Build Coastguard Worker 796*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmovzxwq(<8 x i16> %a0) { 797*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmovzxwq 798*9880d681SAndroid Build Coastguard Worker ;CHECK: pmovzxwq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 799*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}"() 800*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> 801*9880d681SAndroid Build Coastguard Worker %3 = bitcast <8 x i16> %2 to <2 x i64> 802*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 803*9880d681SAndroid Build Coastguard Worker} 804*9880d681SAndroid Build Coastguard Worker 805*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmuldq(<4 x i32> %a0, <4 x i32> %a1) { 806*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmuldq 807*9880d681SAndroid Build Coastguard Worker ;CHECK: pmuldq {{-?[0-9]*}}(%rsp), {{%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 <2 x i64> @llvm.x86.sse41.pmuldq(<4 x i32> %a0, <4 x i32> %a1) 810*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 811*9880d681SAndroid Build Coastguard Worker} 812*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.sse41.pmuldq(<4 x i32>, <4 x i32>) nounwind readnone 813*9880d681SAndroid Build Coastguard Worker 814*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmulhrsw(<8 x i16> %a0, <8 x i16> %a1) { 815*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmulhrsw 816*9880d681SAndroid Build Coastguard Worker ;CHECK: pmulhrsw {{-?[0-9]*}}(%rsp), {{%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 = call <8 x i16> @llvm.x86.ssse3.pmul.hr.sw.128(<8 x i16> %a0, <8 x i16> %a1) 819*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 820*9880d681SAndroid Build Coastguard Worker} 821*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.pmul.hr.sw.128(<8 x i16>, <8 x i16>) nounwind readnone 822*9880d681SAndroid Build Coastguard Worker 823*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmulhuw(<8 x i16> %a0, <8 x i16> %a1) { 824*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmulhuw 825*9880d681SAndroid Build Coastguard Worker ;CHECK: pmulhuw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 826*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}"() 827*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.pmulhu.w(<8 x i16> %a0, <8 x i16> %a1) 828*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 829*9880d681SAndroid Build Coastguard Worker} 830*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.pmulhu.w(<8 x i16>, <8 x i16>) nounwind readnone 831*9880d681SAndroid Build Coastguard Worker 832*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmulhw(<8 x i16> %a0, <8 x i16> %a1) { 833*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmulhw 834*9880d681SAndroid Build Coastguard Worker ;CHECK: pmulhw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 835*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}"() 836*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.pmulh.w(<8 x i16> %a0, <8 x i16> %a1) 837*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 838*9880d681SAndroid Build Coastguard Worker} 839*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.pmulh.w(<8 x i16>, <8 x i16>) nounwind readnone 840*9880d681SAndroid Build Coastguard Worker 841*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pmulld(<4 x i32> %a0, <4 x i32> %a1) { 842*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmulld 843*9880d681SAndroid Build Coastguard Worker ;CHECK: pmulld {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 844*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}"() 845*9880d681SAndroid Build Coastguard Worker %2 = mul <4 x i32> %a0, %a1 846*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 847*9880d681SAndroid Build Coastguard Worker} 848*9880d681SAndroid Build Coastguard Worker 849*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pmullw(<8 x i16> %a0, <8 x i16> %a1) { 850*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmullw 851*9880d681SAndroid Build Coastguard Worker ;CHECK: pmullw {{-?[0-9]*}}(%rsp), {{%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 = mul <8 x i16> %a0, %a1 854*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 855*9880d681SAndroid Build Coastguard Worker} 856*9880d681SAndroid Build Coastguard Worker 857*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_pmuludq(<4 x i32> %a0, <4 x i32> %a1) { 858*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pmuludq 859*9880d681SAndroid Build Coastguard Worker ;CHECK: pmuludq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 860*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}"() 861*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.sse2.pmulu.dq(<4 x i32> %a0, <4 x i32> %a1) 862*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 863*9880d681SAndroid Build Coastguard Worker} 864*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.sse2.pmulu.dq(<4 x i32>, <4 x i32>) nounwind readnone 865*9880d681SAndroid Build Coastguard Worker 866*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_por(<16 x i8> %a0, <16 x i8> %a1) { 867*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_por 868*9880d681SAndroid Build Coastguard Worker ;CHECK: por {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 869*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}"() 870*9880d681SAndroid Build Coastguard Worker %2 = or <16 x i8> %a0, %a1 871*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 872*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> 873*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %3 874*9880d681SAndroid Build Coastguard Worker} 875*9880d681SAndroid Build Coastguard Worker 876*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_psadbw(<16 x i8> %a0, <16 x i8> %a1) { 877*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psadbw 878*9880d681SAndroid Build Coastguard Worker ;CHECK: psadbw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 879*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}"() 880*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.sse2.psad.bw(<16 x i8> %a0, <16 x i8> %a1) 881*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 882*9880d681SAndroid Build Coastguard Worker} 883*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.sse2.psad.bw(<16 x i8>, <16 x i8>) nounwind readnone 884*9880d681SAndroid Build Coastguard Worker 885*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pshufb(<16 x i8> %a0, <16 x i8> %a1) { 886*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pshufb 887*9880d681SAndroid Build Coastguard Worker ;CHECK: pshufb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 888*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}"() 889*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.ssse3.pshuf.b.128(<16 x i8> %a0, <16 x i8> %a1) 890*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 891*9880d681SAndroid Build Coastguard Worker} 892*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.ssse3.pshuf.b.128(<16 x i8>, <16 x i8>) nounwind readnone 893*9880d681SAndroid Build Coastguard Worker 894*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pshufd(<4 x i32> %a0) { 895*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pshufd 896*9880d681SAndroid Build Coastguard Worker ;CHECK: pshufd $27, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 897*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}"() 898*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> 899*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 900*9880d681SAndroid Build Coastguard Worker} 901*9880d681SAndroid Build Coastguard Worker 902*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pshufhw(<8 x i16> %a0) { 903*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pshufhw 904*9880d681SAndroid Build Coastguard Worker ;CHECK: pshufhw $11, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 905*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}"() 906*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> 907*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 908*9880d681SAndroid Build Coastguard Worker} 909*9880d681SAndroid Build Coastguard Worker 910*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_pshuflw(<8 x i16> %a0) { 911*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pshuflw 912*9880d681SAndroid Build Coastguard Worker ;CHECK: pshuflw $27, {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 913*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}"() 914*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> 915*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 916*9880d681SAndroid Build Coastguard Worker} 917*9880d681SAndroid Build Coastguard Worker 918*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_psignb(<16 x i8> %a0, <16 x i8> %a1) { 919*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psignb 920*9880d681SAndroid Build Coastguard Worker ;CHECK: psignb {{-?[0-9]*}}(%rsp), {{%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 <16 x i8> @llvm.x86.ssse3.psign.b.128(<16 x i8> %a0, <16 x i8> %a1) 923*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 924*9880d681SAndroid Build Coastguard Worker} 925*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.ssse3.psign.b.128(<16 x i8>, <16 x i8>) nounwind readnone 926*9880d681SAndroid Build Coastguard Worker 927*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_psignd(<4 x i32> %a0, <4 x i32> %a1) { 928*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psignd 929*9880d681SAndroid Build Coastguard Worker ;CHECK: psignd {{-?[0-9]*}}(%rsp), {{%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 <4 x i32> @llvm.x86.ssse3.psign.d.128(<4 x i32> %a0, <4 x i32> %a1) 932*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 933*9880d681SAndroid Build Coastguard Worker} 934*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.ssse3.psign.d.128(<4 x i32>, <4 x i32>) nounwind readnone 935*9880d681SAndroid Build Coastguard Worker 936*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_psignw(<8 x i16> %a0, <8 x i16> %a1) { 937*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psignw 938*9880d681SAndroid Build Coastguard Worker ;CHECK: psignw {{-?[0-9]*}}(%rsp), {{%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.ssse3.psign.w.128(<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.ssse3.psign.w.128(<8 x i16>, <8 x i16>) nounwind readnone 944*9880d681SAndroid Build Coastguard Worker 945*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_pslld(<4 x i32> %a0, <4 x i32> %a1) { 946*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pslld 947*9880d681SAndroid Build Coastguard Worker ;CHECK: pslld {{-?[0-9]*}}(%rsp), {{%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.psll.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.psll.d(<4 x i32>, <4 x i32>) nounwind readnone 953*9880d681SAndroid Build Coastguard Worker 954*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_psllq(<2 x i64> %a0, <2 x i64> %a1) { 955*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psllq 956*9880d681SAndroid Build Coastguard Worker ;CHECK: psllq {{-?[0-9]*}}(%rsp), {{%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 <2 x i64> @llvm.x86.sse2.psll.q(<2 x i64> %a0, <2 x i64> %a1) 959*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 960*9880d681SAndroid Build Coastguard Worker} 961*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.sse2.psll.q(<2 x i64>, <2 x i64>) nounwind readnone 962*9880d681SAndroid Build Coastguard Worker 963*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_psllw(<8 x i16> %a0, <8 x i16> %a1) { 964*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psllw 965*9880d681SAndroid Build Coastguard Worker ;CHECK: psllw {{-?[0-9]*}}(%rsp), {{%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 <8 x i16> @llvm.x86.sse2.psll.w(<8 x i16> %a0, <8 x i16> %a1) 968*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 969*9880d681SAndroid Build Coastguard Worker} 970*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.psll.w(<8 x i16>, <8 x i16>) nounwind readnone 971*9880d681SAndroid Build Coastguard Worker 972*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_psrad(<4 x i32> %a0, <4 x i32> %a1) { 973*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psrad 974*9880d681SAndroid Build Coastguard Worker ;CHECK: psrad {{-?[0-9]*}}(%rsp), {{%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 <4 x i32> @llvm.x86.sse2.psra.d(<4 x i32> %a0, <4 x i32> %a1) 977*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 978*9880d681SAndroid Build Coastguard Worker} 979*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.sse2.psra.d(<4 x i32>, <4 x i32>) nounwind readnone 980*9880d681SAndroid Build Coastguard Worker 981*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_psraw(<8 x i16> %a0, <8 x i16> %a1) { 982*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psraw 983*9880d681SAndroid Build Coastguard Worker ;CHECK: psraw {{-?[0-9]*}}(%rsp), {{%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.psra.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.psra.w(<8 x i16>, <8 x i16>) nounwind readnone 989*9880d681SAndroid Build Coastguard Worker 990*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_psrld(<4 x i32> %a0, <4 x i32> %a1) { 991*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psrld 992*9880d681SAndroid Build Coastguard Worker ;CHECK: psrld {{-?[0-9]*}}(%rsp), {{%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 = call <4 x i32> @llvm.x86.sse2.psrl.d(<4 x i32> %a0, <4 x i32> %a1) 995*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 996*9880d681SAndroid Build Coastguard Worker} 997*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.sse2.psrl.d(<4 x i32>, <4 x i32>) nounwind readnone 998*9880d681SAndroid Build Coastguard Worker 999*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_psrlq(<2 x i64> %a0, <2 x i64> %a1) { 1000*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psrlq 1001*9880d681SAndroid Build Coastguard Worker ;CHECK: psrlq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1002*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}"() 1003*9880d681SAndroid Build Coastguard Worker %2 = call <2 x i64> @llvm.x86.sse2.psrl.q(<2 x i64> %a0, <2 x i64> %a1) 1004*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 1005*9880d681SAndroid Build Coastguard Worker} 1006*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.x86.sse2.psrl.q(<2 x i64>, <2 x i64>) nounwind readnone 1007*9880d681SAndroid Build Coastguard Worker 1008*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_psrlw(<8 x i16> %a0, <8 x i16> %a1) { 1009*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psrlw 1010*9880d681SAndroid Build Coastguard Worker ;CHECK: psrlw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1011*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}"() 1012*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.psrl.w(<8 x i16> %a0, <8 x i16> %a1) 1013*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 1014*9880d681SAndroid Build Coastguard Worker} 1015*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.psrl.w(<8 x i16>, <8 x i16>) nounwind readnone 1016*9880d681SAndroid Build Coastguard Worker 1017*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_psubb(<16 x i8> %a0, <16 x i8> %a1) { 1018*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubb 1019*9880d681SAndroid Build Coastguard Worker ;CHECK: psubb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1020*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}"() 1021*9880d681SAndroid Build Coastguard Worker %2 = sub <16 x i8> %a0, %a1 1022*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 1023*9880d681SAndroid Build Coastguard Worker} 1024*9880d681SAndroid Build Coastguard Worker 1025*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_psubd(<4 x i32> %a0, <4 x i32> %a1) { 1026*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubd 1027*9880d681SAndroid Build Coastguard Worker ;CHECK: psubd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1028*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}"() 1029*9880d681SAndroid Build Coastguard Worker %2 = sub <4 x i32> %a0, %a1 1030*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %2 1031*9880d681SAndroid Build Coastguard Worker} 1032*9880d681SAndroid Build Coastguard Worker 1033*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_psubq(<2 x i64> %a0, <2 x i64> %a1) { 1034*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubq 1035*9880d681SAndroid Build Coastguard Worker ;CHECK: psubq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1036*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}"() 1037*9880d681SAndroid Build Coastguard Worker %2 = sub <2 x i64> %a0, %a1 1038*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %2 1039*9880d681SAndroid Build Coastguard Worker} 1040*9880d681SAndroid Build Coastguard Worker 1041*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_psubsb(<16 x i8> %a0, <16 x i8> %a1) { 1042*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubsb 1043*9880d681SAndroid Build Coastguard Worker ;CHECK: psubsb {{-?[0-9]*}}(%rsp), {{%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 <16 x i8> @llvm.x86.sse2.psubs.b(<16 x i8> %a0, <16 x i8> %a1) 1046*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 1047*9880d681SAndroid Build Coastguard Worker} 1048*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.psubs.b(<16 x i8>, <16 x i8>) nounwind readnone 1049*9880d681SAndroid Build Coastguard Worker 1050*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_psubsw(<8 x i16> %a0, <8 x i16> %a1) { 1051*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubsw 1052*9880d681SAndroid Build Coastguard Worker ;CHECK: psubsw {{-?[0-9]*}}(%rsp), {{%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 = call <8 x i16> @llvm.x86.sse2.psubs.w(<8 x i16> %a0, <8 x i16> %a1) 1055*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 1056*9880d681SAndroid Build Coastguard Worker} 1057*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.psubs.w(<8 x i16>, <8 x i16>) nounwind readnone 1058*9880d681SAndroid Build Coastguard Worker 1059*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_psubusb(<16 x i8> %a0, <16 x i8> %a1) { 1060*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubusb 1061*9880d681SAndroid Build Coastguard Worker ;CHECK: psubusb {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1062*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}"() 1063*9880d681SAndroid Build Coastguard Worker %2 = call <16 x i8> @llvm.x86.sse2.psubus.b(<16 x i8> %a0, <16 x i8> %a1) 1064*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 1065*9880d681SAndroid Build Coastguard Worker} 1066*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.sse2.psubus.b(<16 x i8>, <16 x i8>) nounwind readnone 1067*9880d681SAndroid Build Coastguard Worker 1068*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_psubusw(<8 x i16> %a0, <8 x i16> %a1) { 1069*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubusw 1070*9880d681SAndroid Build Coastguard Worker ;CHECK: psubusw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1071*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}"() 1072*9880d681SAndroid Build Coastguard Worker %2 = call <8 x i16> @llvm.x86.sse2.psubus.w(<8 x i16> %a0, <8 x i16> %a1) 1073*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 1074*9880d681SAndroid Build Coastguard Worker} 1075*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.sse2.psubus.w(<8 x i16>, <8 x i16>) nounwind readnone 1076*9880d681SAndroid Build Coastguard Worker 1077*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_psubw(<8 x i16> %a0, <8 x i16> %a1) { 1078*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_psubw 1079*9880d681SAndroid Build Coastguard Worker ;CHECK: psubw {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1080*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}"() 1081*9880d681SAndroid Build Coastguard Worker %2 = sub <8 x i16> %a0, %a1 1082*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 1083*9880d681SAndroid Build Coastguard Worker} 1084*9880d681SAndroid Build Coastguard Worker 1085*9880d681SAndroid Build Coastguard Workerdefine i32 @stack_fold_ptest(<2 x i64> %a0, <2 x i64> %a1) { 1086*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_ptest 1087*9880d681SAndroid Build Coastguard Worker ;CHECK: ptest {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1088*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}"() 1089*9880d681SAndroid Build Coastguard Worker %2 = call i32 @llvm.x86.sse41.ptestc(<2 x i64> %a0, <2 x i64> %a1) 1090*9880d681SAndroid Build Coastguard Worker ret i32 %2 1091*9880d681SAndroid Build Coastguard Worker} 1092*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse41.ptestc(<2 x i64>, <2 x i64>) nounwind readnone 1093*9880d681SAndroid Build Coastguard Worker 1094*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_punpckhbw(<16 x i8> %a0, <16 x i8> %a1) { 1095*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpckhbw 1096*9880d681SAndroid Build Coastguard Worker ;CHECK: punpckhbw {{-?[0-9]*}}(%rsp), {{%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 <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> 1099*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 1100*9880d681SAndroid Build Coastguard Worker} 1101*9880d681SAndroid Build Coastguard Worker 1102*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_punpckhdq(<4 x i32> %a0, <4 x i32> %a1) { 1103*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpckhdq 1104*9880d681SAndroid Build Coastguard Worker ;CHECK: punpckhdq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1105*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}"() 1106*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> 1107*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 1108*9880d681SAndroid Build Coastguard Worker %3 = add <4 x i32> %2, <i32 1, i32 1, i32 1, i32 1> 1109*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 1110*9880d681SAndroid Build Coastguard Worker} 1111*9880d681SAndroid Build Coastguard Worker 1112*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_punpckhqdq(<2 x i64> %a0, <2 x i64> %a1) { 1113*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpckhqdq 1114*9880d681SAndroid Build Coastguard Worker ;CHECK: punpckhqdq {{-?[0-9]*}}(%rsp), {{%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 <2 x i64> %a0, <2 x i64> %a1, <2 x i32> <i32 1, i32 3> 1117*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 1118*9880d681SAndroid Build Coastguard Worker %3 = add <2 x i64> %2, <i64 1, i64 1> 1119*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 1120*9880d681SAndroid Build Coastguard Worker} 1121*9880d681SAndroid Build Coastguard Worker 1122*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_punpckhwd(<8 x i16> %a0, <8 x i16> %a1) { 1123*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpckhwd 1124*9880d681SAndroid Build Coastguard Worker ;CHECK: punpckhwd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1125*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}"() 1126*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> 1127*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 1128*9880d681SAndroid Build Coastguard Worker} 1129*9880d681SAndroid Build Coastguard Worker 1130*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_punpcklbw(<16 x i8> %a0, <16 x i8> %a1) { 1131*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpcklbw 1132*9880d681SAndroid Build Coastguard Worker ;CHECK: punpcklbw {{-?[0-9]*}}(%rsp), {{%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 <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> 1135*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 1136*9880d681SAndroid Build Coastguard Worker} 1137*9880d681SAndroid Build Coastguard Worker 1138*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @stack_fold_punpckldq(<4 x i32> %a0, <4 x i32> %a1) { 1139*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpckldq 1140*9880d681SAndroid Build Coastguard Worker ;CHECK: punpckldq {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1141*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}"() 1142*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> 1143*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 1144*9880d681SAndroid Build Coastguard Worker %3 = add <4 x i32> %2, <i32 1, i32 1, i32 1, i32 1> 1145*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %3 1146*9880d681SAndroid Build Coastguard Worker} 1147*9880d681SAndroid Build Coastguard Worker 1148*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @stack_fold_punpcklqdq(<2 x i64> %a0, <2 x i64> %a1) { 1149*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpcklqdq 1150*9880d681SAndroid Build Coastguard Worker ;CHECK: punpcklqdq {{-?[0-9]*}}(%rsp), {{%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 = shufflevector <2 x i64> %a0, <2 x i64> %a1, <2 x i32> <i32 0, i32 2> 1153*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 1154*9880d681SAndroid Build Coastguard Worker %3 = add <2 x i64> %2, <i64 1, i64 1> 1155*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %3 1156*9880d681SAndroid Build Coastguard Worker} 1157*9880d681SAndroid Build Coastguard Worker 1158*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @stack_fold_punpcklwd(<8 x i16> %a0, <8 x i16> %a1) { 1159*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_punpcklwd 1160*9880d681SAndroid Build Coastguard Worker ;CHECK: punpcklwd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1161*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}"() 1162*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> 1163*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %2 1164*9880d681SAndroid Build Coastguard Worker} 1165*9880d681SAndroid Build Coastguard Worker 1166*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @stack_fold_pxor(<16 x i8> %a0, <16 x i8> %a1) { 1167*9880d681SAndroid Build Coastguard Worker ;CHECK-LABEL: stack_fold_pxor 1168*9880d681SAndroid Build Coastguard Worker ;CHECK: pxor {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload 1169*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}"() 1170*9880d681SAndroid Build Coastguard Worker %2 = xor <16 x i8> %a0, %a1 1171*9880d681SAndroid Build Coastguard Worker ; add forces execution domain 1172*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> 1173*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %3 1174*9880d681SAndroid Build Coastguard Worker} 1175