[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / SystemZ / fp-cmp-07.mir
blobe8a2efeaa850abb1003ed37a183e2966cd5deabe
1 # RUN: llc -mtriple=s390x-linux-gnu -mcpu=z10 -no-integrated-as -start-after=block-placement %s -o - | FileCheck %s
2 # Test that LTEBR is used without an unnecessary LER
4 --- |
5   define float @f15(float %val, float %dummy, float* %dest) {
6   entry:
7     call void asm sideeffect "blah $0", "{f2}"(float %val)
8     %cmp = fcmp olt float %val, 0.000000e+00
9     br i1 %cmp, label %exit, label %store
11   store:                                            ; preds = %entry
12     store float %val, float* %dest
13     br label %exit
15   exit:                                             ; preds = %store, %entry
16     ret float %val
17   }
19 ...
21 # CHECK: ltebr %f2, %f0
23 ---
24 name:            f15
25 tracksRegLiveness: true
26 liveins:
27   - { reg: '$f0s', virtual-reg: '' }
28   - { reg: '$r2d', virtual-reg: '' }
29 body:             |
30   bb.0.entry:
31     liveins: $f0s, $r2d
33     LTEBRCompare $f0s, $f0s, implicit-def $cc, implicit $fpc
34     $f2s = LER $f0s
35     INLINEASM &"blah $0", 1, 9, $f2s
36     CondReturn 15, 4, implicit $f0s, implicit $cc
38   bb.1.store:
39     liveins: $f0s, $r2d
41     STE $f0s, killed $r2d, 0, $noreg :: (store 4 into %ir.dest)
42     Return implicit $f0s
44 ...