From 5e6b7a83c2994d329ce85d3a8b2bb6d1011a2dd4 Mon Sep 17 00:00:00 2001 From: Cameron McInally Date: Wed, 7 Aug 2019 21:30:00 +0000 Subject: [PATCH] [NFC][LICM] Pre-commit test for unary FNeg support in LICM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368211 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/LICM/hoisting.ll | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/test/Transforms/LICM/hoisting.ll b/test/Transforms/LICM/hoisting.ll index 0b980e72c1c..eebe1ea7d64 100644 --- a/test/Transforms/LICM/hoisting.ll +++ b/test/Transforms/LICM/hoisting.ll @@ -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 -- 2.40.0