summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/SystemZ/fp-cmp-07.mir44
1 files changed, 44 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/SystemZ/fp-cmp-07.mir b/llvm/test/CodeGen/SystemZ/fp-cmp-07.mir
new file mode 100644
index 00000000000..1d766fe300a
--- /dev/null
+++ b/llvm/test/CodeGen/SystemZ/fp-cmp-07.mir
@@ -0,0 +1,44 @@
+# RUN: llc -mtriple=s390x-linux-gnu -mcpu=z10 -no-integrated-as -start-after=block-placement %s -o - | FileCheck %s
+# Test that LTEBR is used without an unnecessary LER
+
+--- |
+ define float @f15(float %val, float %dummy, float* %dest) {
+ entry:
+ call void asm sideeffect "blah $0", "{f2}"(float %val)
+ %cmp = fcmp olt float %val, 0.000000e+00
+ br i1 %cmp, label %exit, label %store
+
+ store: ; preds = %entry
+ store float %val, float* %dest
+ br label %exit
+
+ exit: ; preds = %store, %entry
+ ret float %val
+ }
+
+...
+
+# CHECK: ltebr %f2, %f0
+
+---
+name: f15
+tracksRegLiveness: true
+liveins:
+ - { reg: '%f0s', virtual-reg: '' }
+ - { reg: '%r2d', virtual-reg: '' }
+body: |
+ bb.0.entry:
+ liveins: %f0s, %r2d
+
+ LTEBRCompare %f0s, %f0s, implicit-def %cc
+ %f2s = LER %f0s
+ INLINEASM $"blah $0", 1, 9, %f2s
+ CondReturn 15, 4, implicit %f0s, implicit %cc
+
+ bb.1.store:
+ liveins: %f0s, %r2d
+
+ STE %f0s, killed %r2d, 0, _ :: (store 4 into %ir.dest)
+ Return implicit %f0s
+
+...
OpenPOWER on IntegriCloud