summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElena Demikhovsky <elena.demikhovsky@intel.com>2016-06-28 06:25:38 +0000
committerElena Demikhovsky <elena.demikhovsky@intel.com>2016-06-28 06:25:38 +0000
commita727f3cfde91553113ee33f7fea6f8c4299d2919 (patch)
tree7cd829a2b20b51197b2c4a0ba7bfba335002f745
parentd743b1bf5dd559cf19ae35dfde8f8b61b4dda0e8 (diff)
downloadbcm5719-llvm-a727f3cfde91553113ee33f7fea6f8c4299d2919.tar.gz
bcm5719-llvm-a727f3cfde91553113ee33f7fea6f8c4299d2919.zip
[X86 Target Lowering] Merged ICMP test.
llvm-svn: 273995
-rw-r--r--llvm/test/CodeGen/X86/2016-06-28-ICmpCrash.ll31
-rw-r--r--llvm/test/CodeGen/X86/cmp.ll27
2 files changed, 27 insertions, 31 deletions
diff --git a/llvm/test/CodeGen/X86/2016-06-28-ICmpCrash.ll b/llvm/test/CodeGen/X86/2016-06-28-ICmpCrash.ll
deleted file mode 100644
index f5a8d96fd47..00000000000
--- a/llvm/test/CodeGen/X86/2016-06-28-ICmpCrash.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-;RUN: llc < %s -mcpu=core-avx2
-
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-unknown-linux-gnu"
-
-%struct.struct_1 = type { i24 }
-
-@a = global i8 0, align 1
-@b = global i8 0, align 1
-@d = global i8 0, align 1
-@e = global i8 0, align 1
-@c = global %struct.struct_1 zeroinitializer, align 4
-
-; Function Attrs: norecurse nounwind uwtable
-define void @_Z3fn1v() #0 {
- %bf.load = load i32, i32* bitcast (%struct.struct_1* @c to i32*), align 4
- %bf.shl = shl i32 %bf.load, 8
- %bf.ashr = ashr exact i32 %bf.shl, 8
- %tobool4 = icmp ne i32 %bf.ashr, 0
- %conv = zext i1 %tobool4 to i32
- %x1 = load i8, i8* @e, align 1
- %conv6 = zext i8 %x1 to i32
- %add = add nuw nsw i32 %conv, %conv6
- %tobool7 = icmp ne i32 %add, 0
- %frombool = zext i1 %tobool7 to i8
- store i8 %frombool, i8* @b, align 1
- %tobool14 = icmp ne i32 %bf.shl, 0
- %frombool15 = zext i1 %tobool14 to i8
- store i8 %frombool15, i8* @d, align 1
- ret void
-} \ No newline at end of file
diff --git a/llvm/test/CodeGen/X86/cmp.ll b/llvm/test/CodeGen/X86/cmp.ll
index eb9a2901142..94f7c54c285 100644
--- a/llvm/test/CodeGen/X86/cmp.ll
+++ b/llvm/test/CodeGen/X86/cmp.ll
@@ -255,3 +255,30 @@ define zeroext i1 @test19(i32 %L) {
; CHECK: testl %edi, %edi
; CHECK: setns %al
}
+
+@d = global i8 0, align 1
+
+; This test failed due to incorrect handling of "shift + icmp" sequence
+define void @test20(i32 %bf.load, i8 %x1, i8* %b_addr) {
+ %bf.shl = shl i32 %bf.load, 8
+ %bf.ashr = ashr exact i32 %bf.shl, 8
+ %tobool4 = icmp ne i32 %bf.ashr, 0
+ %conv = zext i1 %tobool4 to i32
+ %conv6 = zext i8 %x1 to i32
+ %add = add nuw nsw i32 %conv, %conv6
+ %tobool7 = icmp ne i32 %add, 0
+ %frombool = zext i1 %tobool7 to i8
+ store i8 %frombool, i8* %b_addr, align 1
+ %tobool14 = icmp ne i32 %bf.shl, 0
+ %frombool15 = zext i1 %tobool14 to i8
+ store i8 %frombool15, i8* @d, align 1
+ ret void
+
+; CHECK-LABEL: test20
+; CHECK: andl
+; CHECK: setne
+; CHECK: addl
+; CHECK: setne
+; CHECK: testl
+; CHECK: setne
+} \ No newline at end of file
OpenPOWER on IntegriCloud