]> granicus.if.org Git - llvm/commitdiff
[NFC][LICM] Pre-commit test for unary FNeg support in LICM.
authorCameron McInally <cameron.mcinally@nyu.edu>
Wed, 7 Aug 2019 21:30:00 +0000 (21:30 +0000)
committerCameron McInally <cameron.mcinally@nyu.edu>
Wed, 7 Aug 2019 21:30:00 +0000 (21:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368211 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/LICM/hoisting.ll

index 0b980e72c1c010badd1c4500ab502db5c5844c5e..eebe1ea7d6457cffb4ccb06d4eef3da25b07169d 100644 (file)
@@ -126,6 +126,29 @@ ifend:                                            ; preds = %tailrecurse
   ret { i32*, i32 } %d
 }
 
+; CHECK: define void @test6(float %f)
+; CHECK: call
+; CHECK: fneg
+; CHECK: call
+define void @test6(float %f) #2 {
+entry:
+  br label %for.body
+
+for.body:                                         ; preds = %for.body, %entry
+  %i = phi i32 [ 0, %entry ], [ %inc, %for.body ]
+  call void @foo_may_call_exit(i32 0)
+  %neg = fneg float %f
+  call void @use(float %neg)
+  %inc = add nsw i32 %i, 1
+  %cmp = icmp slt i32 %inc, 10000
+  br i1 %cmp, label %for.body, label %for.end
+
+for.end:                                          ; preds = %for.body
+  ret void
+}
+
+declare void @use(float)
+
 ; CHECK: define i32 @hoist_bitreverse(i32 %0)
 ; CHECK: bitreverse
 ; CHECK: br label %header