[llvm] r220206 - [AArch64] test case for compfail fixed by r219748

Gerolf Hoflehner ghoflehner at apple.com
Mon Oct 20 09:08:33 PDT 2014


Author: ghoflehner
Date: Mon Oct 20 11:08:33 2014
New Revision: 220206

URL: http://llvm.org/viewvc/llvm-project?rev=220206&view=rev
Log:
[AArch64] test case for compfail fixed by r219748


Modified:
    llvm/trunk/test/CodeGen/AArch64/arm64-bcc.ll

Modified: llvm/trunk/test/CodeGen/AArch64/arm64-bcc.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/arm64-bcc.ll?rev=220206&r1=220205&r2=220206&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/arm64-bcc.ll (original)
+++ llvm/trunk/test/CodeGen/AArch64/arm64-bcc.ll Mon Oct 20 11:08:33 2014
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mtriple=arm64-apple-darwint  | FileCheck %s
+; RUN: llc < %s -mtriple=arm64-apple-darwin  | FileCheck %s
 ; Checks for conditional branch b.vs
 
 ; Function Attrs: nounwind
@@ -18,9 +18,43 @@ entry:
 ; CHECK: b.vs
 }
 
+%S64 = type <{ i64 }>
+%S32 = type <{ i32 }>
+%Sstruct = type <{ %S64, %S32 }>
+
+; Checks for compfail when optimizing csincr-cbz sequence
+
+define { i64, i1 } @foo(i64* , %Sstruct* , i1, i64) {
+entry:
+  %.sroa.0 = alloca i72, align 16
+  %.count.value = getelementptr inbounds %Sstruct* %1, i64 0, i32 0, i32 0
+  %4 = load i64* %.count.value, align 8
+  %.repeatedValue.value = getelementptr inbounds %Sstruct* %1, i64 0, i32 1, i32 0
+  %5 = load i32* %.repeatedValue.value, align 8
+  %6 = icmp eq i64 %4, 0
+  br label %7
+
+; <label>:7                                      ; preds = %entry
+  %.mask58 = and i32 %5, -2048
+  %8 = icmp eq i32 %.mask58, 55296
+  %.not134 = xor i1 %8, true
+  %9 = icmp eq i32 %5, 1114112
+  %or.cond135 = and i1 %9, %.not134
+  br i1 %or.cond135, label %10, label %.loopexit
+
+; <label>:10                                      ; preds = %7
+  %11 = and i32 %5, -2048
+  %12 = icmp eq i32 %11, 55296
+  br i1 %12, label %.loopexit, label %10
+
+
+.loopexit:                                        ; preds = %.entry,%7,%10
+  tail call void @llvm.trap()
+  unreachable
+}
+
 ; Function Attrs: nounwind readnone
 declare { i32, i1 } @llvm.sadd.with.overflow.i32(i32, i32)
 
 ; Function Attrs: noreturn nounwind
 declare void @llvm.trap()
-





More information about the llvm-commits mailing list