summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/vec_smulo.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/X86/vec_smulo.ll')
-rw-r--r--llvm/test/CodeGen/X86/vec_smulo.ll46
1 files changed, 22 insertions, 24 deletions
diff --git a/llvm/test/CodeGen/X86/vec_smulo.ll b/llvm/test/CodeGen/X86/vec_smulo.ll
index 8b716b7f1ec..ab97c51df41 100644
--- a/llvm/test/CodeGen/X86/vec_smulo.ll
+++ b/llvm/test/CodeGen/X86/vec_smulo.ll
@@ -2706,44 +2706,42 @@ define <2 x i32> @smulo_v2i128(<2 x i128> %a0, <2 x i128> %a1, <2 x i128>* %p2)
; AVX512-NEXT: pushq %r13
; AVX512-NEXT: pushq %r12
; AVX512-NEXT: pushq %rbx
-; AVX512-NEXT: subq $40, %rsp
-; AVX512-NEXT: movq %r9, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
-; AVX512-NEXT: movq %r8, %r15
-; AVX512-NEXT: movq %rdx, %rax
-; AVX512-NEXT: movq %rsi, %r12
-; AVX512-NEXT: movq %rdi, %rbx
-; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %r14
-; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rdx
-; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %r9
+; AVX512-NEXT: subq $24, %rsp
+; AVX512-NEXT: movq %r8, %rax
+; AVX512-NEXT: movq %rcx, %r14
+; AVX512-NEXT: movq %rdx, %rbx
+; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %r15
+; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %r12
; AVX512-NEXT: movq $0, {{[0-9]+}}(%rsp)
; AVX512-NEXT: leaq {{[0-9]+}}(%rsp), %r8
-; AVX512-NEXT: movq %rax, %rdi
-; AVX512-NEXT: movq %rcx, %rsi
+; AVX512-NEXT: movq %rax, %rdx
; AVX512-NEXT: movq %r9, %rcx
; AVX512-NEXT: callq __muloti4
; AVX512-NEXT: movq %rax, %r13
; AVX512-NEXT: movq %rdx, %rbp
-; AVX512-NEXT: cmpq $0, {{[0-9]+}}(%rsp)
-; AVX512-NEXT: setne %al
-; AVX512-NEXT: movb %al, {{[0-9]+}}(%rsp)
; AVX512-NEXT: movq $0, {{[0-9]+}}(%rsp)
; AVX512-NEXT: leaq {{[0-9]+}}(%rsp), %r8
; AVX512-NEXT: movq %rbx, %rdi
-; AVX512-NEXT: movq %r12, %rsi
-; AVX512-NEXT: movq %r15, %rdx
-; AVX512-NEXT: movq {{[-0-9]+}}(%r{{[sb]}}p), %rcx # 8-byte Reload
+; AVX512-NEXT: movq %r14, %rsi
+; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rdx
+; AVX512-NEXT: movq %r12, %rcx
; AVX512-NEXT: callq __muloti4
; AVX512-NEXT: cmpq $0, {{[0-9]+}}(%rsp)
; AVX512-NEXT: setne %cl
-; AVX512-NEXT: movb %cl, {{[0-9]+}}(%rsp)
-; AVX512-NEXT: kmovw {{[0-9]+}}(%rsp), %k1
-; AVX512-NEXT: movq %rbp, 24(%r14)
-; AVX512-NEXT: movq %r13, 16(%r14)
-; AVX512-NEXT: movq %rdx, 8(%r14)
-; AVX512-NEXT: movq %rax, (%r14)
+; AVX512-NEXT: kmovd %ecx, %k0
+; AVX512-NEXT: kshiftlw $1, %k0, %k0
+; AVX512-NEXT: cmpq $0, {{[0-9]+}}(%rsp)
+; AVX512-NEXT: setne %cl
+; AVX512-NEXT: andl $1, %ecx
+; AVX512-NEXT: kmovw %ecx, %k1
+; AVX512-NEXT: korw %k0, %k1, %k1
+; AVX512-NEXT: movq %rdx, 24(%r15)
+; AVX512-NEXT: movq %rax, 16(%r15)
+; AVX512-NEXT: movq %rbp, 8(%r15)
+; AVX512-NEXT: movq %r13, (%r15)
; AVX512-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
; AVX512-NEXT: vmovdqa64 %xmm0, %xmm0 {%k1} {z}
-; AVX512-NEXT: addq $40, %rsp
+; AVX512-NEXT: addq $24, %rsp
; AVX512-NEXT: popq %rbx
; AVX512-NEXT: popq %r12
; AVX512-NEXT: popq %r13
OpenPOWER on IntegriCloud