[X86] Add test for PR54369 (NFC)
authorNikita Popov <npopov@redhat.com>
Thu, 31 Mar 2022 14:44:45 +0000 (16:44 +0200)
committerNikita Popov <npopov@redhat.com>
Thu, 31 Mar 2022 14:45:05 +0000 (16:45 +0200)
llvm/test/CodeGen/X86/pr54369.ll [new file with mode: 0644]

diff --git a/llvm/test/CodeGen/X86/pr54369.ll b/llvm/test/CodeGen/X86/pr54369.ll
new file mode 100644 (file)
index 0000000..818b4f9
--- /dev/null
@@ -0,0 +1,21 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc -mtriple=x86_64-- -O0 < %s | FileCheck %s
+
+; FIXME: This is currently miscompiled due to an eflags clobber.
+define i64 @adder(i64 %lhs, i64 %rhs) {
+; CHECK-LABEL: adder:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    addq %rsi, %rdi
+; CHECK-NEXT:    seto %al
+; CHECK-NEXT:    xorl %eax, %eax
+; CHECK-NEXT:    # kill: def $rax killed $eax
+; CHECK-NEXT:    movl $148, %ecx
+; CHECK-NEXT:    cmovoq %rcx, %rax
+; CHECK-NEXT:    retq
+       %res = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %lhs, i64 %rhs)
+       %errorbit = extractvalue { i64, i1 } %res, 1
+       %errorval = select i1 %errorbit, i64 148, i64 0
+       ret i64 %errorval
+}
+
+declare { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)