[llvm] 28c1838 - [ConstantFold] Add some tests for binops with constants and undefs.

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Sun Nov 17 13:29:08 PST 2019


Author: Florian Hahn
Date: 2019-11-17T21:10:45Z
New Revision: 28c183859ae0e92b638721a738019fe7265910a5

URL: https://github.com/llvm/llvm-project/commit/28c183859ae0e92b638721a738019fe7265910a5
DIFF: https://github.com/llvm/llvm-project/commit/28c183859ae0e92b638721a738019fe7265910a5.diff

LOG: [ConstantFold] Add some tests for binops with constants and undefs.

Precommit tests for D70169.

Added: 
    llvm/test/Analysis/ConstantFolding/binop-identity-undef.ll

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/Analysis/ConstantFolding/binop-identity-undef.ll b/llvm/test/Analysis/ConstantFolding/binop-identity-undef.ll
new file mode 100644
index 000000000000..7bb824dfb465
--- /dev/null
+++ b/llvm/test/Analysis/ConstantFolding/binop-identity-undef.ll
@@ -0,0 +1,50 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt -constprop -S %s | FileCheck %s
+
+define i32 @and1() {
+; CHECK-LABEL: @and1(
+; CHECK-NEXT:    ret i32 0
+;
+  %r = and i32 undef, -1
+  ret i32 %r
+}
+
+define i32 @and2() {
+; CHECK-LABEL: @and2(
+; CHECK-NEXT:    ret i32 0
+;
+  %r = and i32 -1, undef
+  ret i32 %r
+}
+
+define i32 @and3_no_identity() {
+; CHECK-LABEL: @and3_no_identity(
+; CHECK-NEXT:    ret i32 0
+;
+  %r = and i32 10, undef
+  ret i32 %r
+}
+
+define i32 @or1() {
+; CHECK-LABEL: @or1(
+; CHECK-NEXT:    ret i32 -1
+;
+  %r = or i32 0, undef
+  ret i32 %r
+}
+
+define i32 @or2() {
+; CHECK-LABEL: @or2(
+; CHECK-NEXT:    ret i32 -1
+;
+  %r = or i32 undef, 0
+  ret i32 %r
+}
+
+define i32 @or3_no_identity() {
+; CHECK-LABEL: @or3_no_identity(
+; CHECK-NEXT:    ret i32 -1
+;
+  %r = or i32 undef, 10
+  ret i32 %r
+}


        


More information about the llvm-commits mailing list