[llvm] r338670 - [LICM] Expand tests to highlight an oddity in sinking implementation

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 1 20:54:29 PDT 2018


Author: reames
Date: Wed Aug  1 20:54:29 2018
New Revision: 338670

URL: http://llvm.org/viewvc/llvm-project?rev=338670&view=rev
Log:
[LICM] Expand tests to highlight an oddity in sinking implementation


Modified:
    llvm/trunk/test/Transforms/LICM/sinking.ll

Modified: llvm/trunk/test/Transforms/LICM/sinking.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LICM/sinking.ll?rev=338670&r1=338669&r2=338670&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/LICM/sinking.ll (original)
+++ llvm/trunk/test/Transforms/LICM/sinking.ll Wed Aug  1 20:54:29 2018
@@ -40,6 +40,39 @@ Out:		; preds = %Loop
 ; CHECK-NEXT: ret double %A
 }
 
+; FIXME: Should be able to sink this case
+define i32 @test2b(i32 %X) {
+	br label %Loop
+
+Loop:		; preds = %Loop, %0
+	call void @foo( )
+	%A = sdiv i32 10, %X
+	br i1 true, label %Loop, label %Out
+
+Out:		; preds = %Loop
+	ret i32 %A
+; CHECK-LABEL: @test2b(
+; CHECK: Out:
+; CHECK-NOT: sdiv
+; CHECK: ret i32 %A.lcssa
+}
+
+define double @test2c(double* %P) {
+	br label %Loop
+
+Loop:		; preds = %Loop, %0
+	call void @foo( )
+	%A = load double, double* %P, !invariant.load !{}
+	br i1 true, label %Loop, label %Out
+
+Out:		; preds = %Loop
+	ret double %A
+; CHECK-LABEL: @test2c(
+; CHECK: Out:
+; CHECK-NEXT: load double
+; CHECK-NEXT: ret double %A
+}
+
 ; This testcase checks to make sure the sinker does not cause problems with
 ; critical edges.
 define void @test3() {




More information about the llvm-commits mailing list