diff options
author | Jonas Paulsson <paulsson@linux.vnet.ibm.com> | 2017-09-21 13:52:24 +0000 |
---|---|---|
committer | Jonas Paulsson <paulsson@linux.vnet.ibm.com> | 2017-09-21 13:52:24 +0000 |
commit | d4b6c99f73cfe8288fa51df32ecbd7054bd8a43a (patch) | |
tree | 133c0f87db2eeed421a11a387e1bef9b4cee8095 /test/CodeGen/SystemZ | |
parent | 4b02ed37e6b925f978b5839aaa7ba6ef3c62f887 (diff) |
[SystemZ] Improve optimizeCompareZero()
More conversions to load-and-test can be made with this patch by adding a
forward search in optimizeCompareZero().
Review: Ulrich Weigand
https://reviews.llvm.org/D38076
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313877 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/SystemZ')
-rw-r--r-- | test/CodeGen/SystemZ/fp-cmp-07.mir | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/CodeGen/SystemZ/fp-cmp-07.mir b/test/CodeGen/SystemZ/fp-cmp-07.mir new file mode 100644 index 00000000000..1d766fe300a --- /dev/null +++ b/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 + +... |