[llvm] 5e029f0 - [X86] xaluo.ll - add test coverage showing the failure to recognise when saddo/ssubo will not overflow
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sat May 6 05:33:24 PDT 2023
Author: Simon Pilgrim
Date: 2023-05-06T13:33:14+01:00
New Revision: 5e029f0142f24c96c4dc4b87ebea0004c75654ef
URL: https://github.com/llvm/llvm-project/commit/5e029f0142f24c96c4dc4b87ebea0004c75654ef
DIFF: https://github.com/llvm/llvm-project/commit/5e029f0142f24c96c4dc4b87ebea0004c75654ef.diff
LOG: [X86] xaluo.ll - add test coverage showing the failure to recognise when saddo/ssubo will not overflow
sadd/ssub with both operands with more than one sign bit will not overflow
Alive2: https://alive2.llvm.org/ce/z/a8HmNp
Added:
Modified:
llvm/test/CodeGen/X86/xaluo.ll
Removed:
################################################################################
diff --git a/llvm/test/CodeGen/X86/xaluo.ll b/llvm/test/CodeGen/X86/xaluo.ll
index 261e2db1a493..55cdc4075483 100644
--- a/llvm/test/CodeGen/X86/xaluo.ll
+++ b/llvm/test/CodeGen/X86/xaluo.ll
@@ -964,6 +964,37 @@ continue:
ret i1 true
}
+; FIXME: Failure to recognise add can't overflow
+define {i64, i1} @saddoovf(i64 %a, i64 %b) {
+; CHECK-LABEL: saddoovf:
+; CHECK: ## %bb.0:
+; CHECK-NEXT: movq %rsi, %rax
+; CHECK-NEXT: sarq $17, %rdi
+; CHECK-NEXT: shrq $31, %rax
+; CHECK-NEXT: addq %rdi, %rax
+; CHECK-NEXT: seto %dl
+; CHECK-NEXT: retq
+ %1 = ashr i64 %a, 17
+ %2 = lshr i64 %b, 31
+ %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %1, i64 %2)
+ ret {i64, i1} %t
+}
+
+; FIXME: Failure to recognise sub can't overflow
+define {i64, i1} @ssuboovf(i64 %a, i64 %b) {
+; CHECK-LABEL: ssuboovf:
+; CHECK: ## %bb.0:
+; CHECK-NEXT: movzwl %di, %eax
+; CHECK-NEXT: shrq $22, %rsi
+; CHECK-NEXT: subq %rsi, %rax
+; CHECK-NEXT: seto %dl
+; CHECK-NEXT: retq
+ %1 = and i64 %a, 65535
+ %2 = lshr i64 %b, 22
+ %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %1, i64 %2)
+ ret {i64, i1} %t
+}
+
define {i64, i1} @uaddoovf(i64 %a, i64 %b) {
; CHECK-LABEL: uaddoovf:
; CHECK: ## %bb.0:
More information about the llvm-commits
mailing list