brintos

brintos / llvm-project-archived public Read only

0
0
Text · 29.7 KiB · 86c2364 Raw
499 lines · plain
1# RUN: llc -mtriple=s390x-linux-gnu -mcpu=z14 -start-before=greedy %s -o - \2# RUN:   | FileCheck %s3#4# Test folding of a memory operand into an fp memory instruction.5 6--- |7  define void @fun0(double %arg0, double %arg1, ptr %Dst) { ret void }8  define void @fun1(double %arg0, double %arg1, ptr %Dst) { ret void }9  define void @fun2(double %arg0, double %arg1, ptr %Dst) { ret void }10  define void @fun3(float %arg0, float %arg1, ptr %Dst) { ret void }11  define void @fun4(float %arg0, float %arg1, ptr %Dst) { ret void }12  define void @fun5(float %arg0, float %arg1, ptr %Dst) { ret void }13  define void @fun6(double %arg0, double %arg1, ptr %Dst) { ret void }14  define void @fun7(double %arg0, double %arg1, ptr %Dst) { ret void }15  define void @fun8(double %arg0, double %arg1, ptr %Dst) { ret void }16  define void @fun9(float %arg0, float %arg1, ptr %Dst) { ret void }17  define void @fun10(float %arg0, float %arg1, ptr %Dst) { ret void }18  define void @fun11(float %arg0, float %arg1, ptr %Dst) { ret void }19  define void @fun12(float %arg0, float %arg1, ptr %Dst) { ret void }20 21...22 23# CHECK-LABEL: fun0:24# CHECK: cdb     %f0, 160(%r15)                  # 8-byte Folded Reload25---26name:            fun027alignment:       1628tracksRegLiveness: true29registers:30  - { id: 0, class: fp64bit }31  - { id: 1, class: fp64bit }32  - { id: 2, class: addr64bit }33  - { id: 3, class: vr64bit }34  - { id: 4, class: gr64bit }35liveins:36  - { reg: '$f0d', virtual-reg: '%0' }37  - { reg: '$f2d', virtual-reg: '%1' }38  - { reg: '$r2d', virtual-reg: '%2' }39frameInfo:40  maxAlignment:    141machineFunctionInfo: {}42body:             |43  bb.0:44    liveins: $f0d, $f2d, $r2d45  46    %2:addr64bit = COPY $r2d47    %1:fp64bit = COPY $f2d48    %0:fp64bit = COPY $f0d49    INLINEASM &"", 1, 12, implicit-def dead early-clobber $r0d, 12, implicit-def dead early-clobber $r1d, 12, implicit-def dead early-clobber $r2d, 12, implicit-def dead early-clobber $r3d, 12, implicit-def dead early-clobber $r4d, 12, implicit-def dead early-clobber $r5d, 12, implicit-def dead early-clobber $r6d, 12, implicit-def dead early-clobber $r7d, 12, implicit-def dead early-clobber $r8d, 12, implicit-def dead early-clobber $r9d, 12, implicit-def dead early-clobber $r10d, 12, implicit-def dead early-clobber $r11d, 12, implicit-def dead early-clobber $r12d, 12, implicit-def dead early-clobber $r13d, 12, implicit-def dead early-clobber $r14d, 12, implicit-def dead early-clobber $f1d, 12, implicit-def dead early-clobber $f2d, 12, implicit-def dead early-clobber $f3d, 12, implicit-def dead early-clobber $f4d, 12, implicit-def dead early-clobber $f5d, 12, implicit-def dead early-clobber $f6d, 12, implicit-def dead early-clobber $f7d, 12, implicit-def dead early-clobber $f8d, 12, implicit-def dead early-clobber $f9d, 12, implicit-def dead early-clobber $f10d, 12, implicit-def dead early-clobber $f11d, 12, implicit-def dead early-clobber $f12d, 12, implicit-def dead early-clobber $f13d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f15d50    nofpexcept WFCDB %0, %1, implicit-def $cc, implicit $fpc51    %4:gr64bit = LGHI 052    %4:gr64bit = LOCGHI %4, 1, 15, 8, implicit killed $cc53    STG %4, %2, 0, $noreg :: (store (s64) into %ir.Dst)54    Return55 56...57 58 59# CHECK-LABEL: fun1:60# CHECK: cdb     %f0, 160(%r15)                  # 8-byte Folded Reload61---62name:            fun163alignment:       1664tracksRegLiveness: true65registers:66  - { id: 0, class: fp64bit }67  - { id: 1, class: fp64bit }68  - { id: 2, class: addr64bit }69  - { id: 3, class: vr64bit }70  - { id: 4, class: gr64bit }71liveins:72  - { reg: '$f0d', virtual-reg: '%0' }73  - { reg: '$f2d', virtual-reg: '%1' }74  - { reg: '$r2d', virtual-reg: '%2' }75frameInfo:76  maxAlignment:    177machineFunctionInfo: {}78body:             |79  bb.0:80    liveins: $f0d, $f2d, $r2d81  82    %2:addr64bit = COPY $r2d83    %1:fp64bit = COPY $f2d84    %0:fp64bit = COPY $f0d85    INLINEASM &"", 1, 12, implicit-def dead early-clobber $r0d, 12, implicit-def dead early-clobber $r1d, 12, implicit-def dead early-clobber $r2d, 12, implicit-def dead early-clobber $r3d, 12, implicit-def dead early-clobber $r4d, 12, implicit-def dead early-clobber $r5d, 12, implicit-def dead early-clobber $r6d, 12, implicit-def dead early-clobber $r7d, 12, implicit-def dead early-clobber $r8d, 12, implicit-def dead early-clobber $r9d, 12, implicit-def dead early-clobber $r10d, 12, implicit-def dead early-clobber $r11d, 12, implicit-def dead early-clobber $r12d, 12, implicit-def dead early-clobber $r13d, 12, implicit-def dead early-clobber $r14d, 12, implicit-def dead early-clobber $f1d, 12, implicit-def dead early-clobber $f2d, 12, implicit-def dead early-clobber $f3d, 12, implicit-def dead early-clobber $f4d, 12, implicit-def dead early-clobber $f5d, 12, implicit-def dead early-clobber $f6d, 12, implicit-def dead early-clobber $f7d, 12, implicit-def dead early-clobber $f8d, 12, implicit-def dead early-clobber $f9d, 12, implicit-def dead early-clobber $f10d, 12, implicit-def dead early-clobber $f11d, 12, implicit-def dead early-clobber $f12d, 12, implicit-def dead early-clobber $f13d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f15d86    nofpexcept WFCDB %1, %0, implicit-def $cc, implicit $fpc87    %4:gr64bit = LGHI 088    %4:gr64bit = LOCGHI %4, 1, 15, 8, implicit killed $cc89    STG %4, %2, 0, $noreg :: (store (s64) into %ir.Dst)90    Return91 92...93 94 95# CDB can't be used if one operand is a VR64 (and not FP64).96# CHECK-LABEL: fun2:97# CHECK:      ld      %f0, 160(%r15)                  # 8-byte Reload98# CHECK-NEXT: wfcdb   %v16, %f099---100name:            fun2101alignment:       16102tracksRegLiveness: true103registers:104  - { id: 0, class: fp64bit }105  - { id: 1, class: vr64bit }106  - { id: 2, class: addr64bit }107  - { id: 3, class: vr64bit }108  - { id: 4, class: gr64bit }109liveins:110  - { reg: '$f0d', virtual-reg: '%0' }111  - { reg: '$f2d', virtual-reg: '%1' }112  - { reg: '$r2d', virtual-reg: '%2' }113frameInfo:114  maxAlignment:    1115machineFunctionInfo: {}116body:             |117  bb.0:118    liveins: $f0d, $f2d, $r2d119  120    %2:addr64bit = COPY $r2d121    %1:vr64bit = COPY $f2d122    %0:fp64bit = COPY $f0d123    INLINEASM &"", 1, 12, implicit-def dead early-clobber $r0d, 12, implicit-def dead early-clobber $r1d, 12, implicit-def dead early-clobber $r2d, 12, implicit-def dead early-clobber $r3d, 12, implicit-def dead early-clobber $r4d, 12, implicit-def dead early-clobber $r5d, 12, implicit-def dead early-clobber $r6d, 12, implicit-def dead early-clobber $r7d, 12, implicit-def dead early-clobber $r8d, 12, implicit-def dead early-clobber $r9d, 12, implicit-def dead early-clobber $r10d, 12, implicit-def dead early-clobber $r11d, 12, implicit-def dead early-clobber $r12d, 12, implicit-def dead early-clobber $r13d, 12, implicit-def dead early-clobber $r14d, 12, implicit-def dead early-clobber $f0d, 12, implicit-def dead early-clobber $f1d, 12, implicit-def dead early-clobber $f2d, 12, implicit-def dead early-clobber $f3d, 12, implicit-def dead early-clobber $f4d, 12, implicit-def dead early-clobber $f5d, 12, implicit-def dead early-clobber $f6d, 12, implicit-def dead early-clobber $f7d, 12, implicit-def dead early-clobber $f8d, 12, implicit-def dead early-clobber $f9d, 12, implicit-def dead early-clobber $f10d, 12, implicit-def dead early-clobber $f11d, 12, implicit-def dead early-clobber $f12d, 12, implicit-def dead early-clobber $f13d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f15d124    nofpexcept WFCDB %1, %0, implicit-def $cc, implicit $fpc125    %4:gr64bit = LGHI 0126    %4:gr64bit = LOCGHI %4, 1, 15, 8, implicit killed $cc127    STG %4, %2, 0, $noreg :: (store (s64) into %ir.Dst)128    Return129 130...131 132 133# CHECK-LABEL: fun3:134# CHECK: ceb     %f0, 164(%r15)                  # 4-byte Folded Reload135---136name:            fun3137alignment:       16138tracksRegLiveness: true139registers:140  - { id: 0, class: fp32bit }141  - { id: 1, class: fp32bit }142  - { id: 2, class: addr64bit }143  - { id: 3, class: vr32bit }144  - { id: 4, class: gr64bit }145liveins:146  - { reg: '$f0s', virtual-reg: '%0' }147  - { reg: '$f2s', virtual-reg: '%1' }148  - { reg: '$r2d', virtual-reg: '%2' }149frameInfo:150  maxAlignment:    1151machineFunctionInfo: {}152body:             |153  bb.0:154    liveins: $f0s, $f2s, $r2d155  156    %2:addr64bit = COPY $r2d157    %1:fp32bit = COPY $f2s158    %0:fp32bit = COPY $f0s159    INLINEASM &"", 1, 12, implicit-def dead early-clobber $r0d, 12, implicit-def dead early-clobber $r1d, 12, implicit-def dead early-clobber $r2d, 12, implicit-def dead early-clobber $r3d, 12, implicit-def dead early-clobber $r4d, 12, implicit-def dead early-clobber $r5d, 12, implicit-def dead early-clobber $r6d, 12, implicit-def dead early-clobber $r7d, 12, implicit-def dead early-clobber $r8d, 12, implicit-def dead early-clobber $r9d, 12, implicit-def dead early-clobber $r10d, 12, implicit-def dead early-clobber $r11d, 12, implicit-def dead early-clobber $r12d, 12, implicit-def dead early-clobber $r13d, 12, implicit-def dead early-clobber $r14d, 12, implicit-def dead early-clobber $f1d, 12, implicit-def dead early-clobber $f2d, 12, implicit-def dead early-clobber $f3d, 12, implicit-def dead early-clobber $f4d, 12, implicit-def dead early-clobber $f5d, 12, implicit-def dead early-clobber $f6d, 12, implicit-def dead early-clobber $f7d, 12, implicit-def dead early-clobber $f8d, 12, implicit-def dead early-clobber $f9d, 12, implicit-def dead early-clobber $f10d, 12, implicit-def dead early-clobber $f11d, 12, implicit-def dead early-clobber $f12d, 12, implicit-def dead early-clobber $f13d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f15d160    nofpexcept WFCSB %0, %1, implicit-def $cc, implicit $fpc161    %4:gr64bit = LGHI 0162    %4:gr64bit = LOCGHI %4, 1, 15, 8, implicit killed $cc163    STG %4, %2, 0, $noreg :: (store (s64) into %ir.Dst)164    Return165 166...167 168 169# CHECK-LABEL: fun4:170# CHECK: ceb     %f0, 164(%r15)                  # 4-byte Folded Reload171---172name:            fun4173alignment:       16174tracksRegLiveness: true175registers:176  - { id: 0, class: fp32bit }177  - { id: 1, class: fp32bit }178  - { id: 2, class: addr64bit }179  - { id: 3, class: vr32bit }180  - { id: 4, class: gr64bit }181liveins:182  - { reg: '$f0s', virtual-reg: '%0' }183  - { reg: '$f2s', virtual-reg: '%1' }184  - { reg: '$r2d', virtual-reg: '%2' }185frameInfo:186  maxAlignment:    1187machineFunctionInfo: {}188body:             |189  bb.0:190    liveins: $f0s, $f2s, $r2d191  192    %2:addr64bit = COPY $r2d193    %1:fp32bit = COPY $f2s194    %0:fp32bit = COPY $f0s195    INLINEASM &"", 1, 12, implicit-def dead early-clobber $r0d, 12, implicit-def dead early-clobber $r1d, 12, implicit-def dead early-clobber $r2d, 12, implicit-def dead early-clobber $r3d, 12, implicit-def dead early-clobber $r4d, 12, implicit-def dead early-clobber $r5d, 12, implicit-def dead early-clobber $r6d, 12, implicit-def dead early-clobber $r7d, 12, implicit-def dead early-clobber $r8d, 12, implicit-def dead early-clobber $r9d, 12, implicit-def dead early-clobber $r10d, 12, implicit-def dead early-clobber $r11d, 12, implicit-def dead early-clobber $r12d, 12, implicit-def dead early-clobber $r13d, 12, implicit-def dead early-clobber $r14d, 12, implicit-def dead early-clobber $f1d, 12, implicit-def dead early-clobber $f2d, 12, implicit-def dead early-clobber $f3d, 12, implicit-def dead early-clobber $f4d, 12, implicit-def dead early-clobber $f5d, 12, implicit-def dead early-clobber $f6d, 12, implicit-def dead early-clobber $f7d, 12, implicit-def dead early-clobber $f8d, 12, implicit-def dead early-clobber $f9d, 12, implicit-def dead early-clobber $f10d, 12, implicit-def dead early-clobber $f11d, 12, implicit-def dead early-clobber $f12d, 12, implicit-def dead early-clobber $f13d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f15d196    nofpexcept WFCSB %1, %0, implicit-def $cc, implicit $fpc197    %4:gr64bit = LGHI 0198    %4:gr64bit = LOCGHI %4, 1, 15, 8, implicit killed $cc199    STG %4, %2, 0, $noreg :: (store (s64) into %ir.Dst)200    Return201 202...203 204 205# CEB can't be used if one operand is a VR32 (and not FP32).206# CHECK-LABEL: fun5:207# CHECK:      lde     %f0, 164(%r15)                  # 4-byte Reload208# CHECK-NEXT: wfcsb   %v16, %f0209---210name:            fun5211alignment:       16212tracksRegLiveness: true213registers:214  - { id: 0, class: fp32bit }215  - { id: 1, class: vr32bit }216  - { id: 2, class: addr64bit }217  - { id: 3, class: vr32bit }218  - { id: 4, class: gr64bit }219liveins:220  - { reg: '$f0s', virtual-reg: '%0' }221  - { reg: '$f2s', virtual-reg: '%1' }222  - { reg: '$r2d', virtual-reg: '%2' }223frameInfo:224  maxAlignment:    1225machineFunctionInfo: {}226body:             |227  bb.0:228    liveins: $f0s, $f2s, $r2d229  230    %2:addr64bit = COPY $r2d231    %1:vr32bit = COPY $f2s232    %0:fp32bit = COPY $f0s233    INLINEASM &"", 1, 12, implicit-def dead early-clobber $r0d, 12, implicit-def dead early-clobber $r1d, 12, implicit-def dead early-clobber $r2d, 12, implicit-def dead early-clobber $r3d, 12, implicit-def dead early-clobber $r4d, 12, implicit-def dead early-clobber $r5d, 12, implicit-def dead early-clobber $r6d, 12, implicit-def dead early-clobber $r7d, 12, implicit-def dead early-clobber $r8d, 12, implicit-def dead early-clobber $r9d, 12, implicit-def dead early-clobber $r10d, 12, implicit-def dead early-clobber $r11d, 12, implicit-def dead early-clobber $r12d, 12, implicit-def dead early-clobber $r13d, 12, implicit-def dead early-clobber $r14d, 12, implicit-def dead early-clobber $f0d, 12, implicit-def dead early-clobber $f1d, 12, implicit-def dead early-clobber $f2d, 12, implicit-def dead early-clobber $f3d, 12, implicit-def dead early-clobber $f4d, 12, implicit-def dead early-clobber $f5d, 12, implicit-def dead early-clobber $f6d, 12, implicit-def dead early-clobber $f7d, 12, implicit-def dead early-clobber $f8d, 12, implicit-def dead early-clobber $f9d, 12, implicit-def dead early-clobber $f10d, 12, implicit-def dead early-clobber $f11d, 12, implicit-def dead early-clobber $f12d, 12, implicit-def dead early-clobber $f13d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f15d234    nofpexcept WFCSB %1, %0, implicit-def $cc, implicit $fpc235    %4:gr64bit = LGHI 0236    %4:gr64bit = LOCGHI %4, 1, 15, 8, implicit killed $cc237    STG %4, %2, 0, $noreg :: (store (s64) into %ir.Dst)238    Return239 240...241 242 243# CHECK-LABEL: fun6:244# CHECK: kdb     %f0, 160(%r15)                  # 8-byte Folded Reload245---246name:            fun6247alignment:       16248tracksRegLiveness: true249registers:250  - { id: 0, class: fp64bit }251  - { id: 1, class: fp64bit }252  - { id: 2, class: addr64bit }253  - { id: 3, class: vr64bit }254  - { id: 4, class: gr64bit }255liveins:256  - { reg: '$f0d', virtual-reg: '%0' }257  - { reg: '$f2d', virtual-reg: '%1' }258  - { reg: '$r2d', virtual-reg: '%2' }259frameInfo:260  maxAlignment:    1261machineFunctionInfo: {}262body:             |263  bb.0:264    liveins: $f0d, $f2d, $r2d265  266    %2:addr64bit = COPY $r2d267    %1:fp64bit = COPY $f2d268    %0:fp64bit = COPY $f0d269    INLINEASM &"", 1, 12, implicit-def dead early-clobber $r0d, 12, implicit-def dead early-clobber $r1d, 12, implicit-def dead early-clobber $r2d, 12, implicit-def dead early-clobber $r3d, 12, implicit-def dead early-clobber $r4d, 12, implicit-def dead early-clobber $r5d, 12, implicit-def dead early-clobber $r6d, 12, implicit-def dead early-clobber $r7d, 12, implicit-def dead early-clobber $r8d, 12, implicit-def dead early-clobber $r9d, 12, implicit-def dead early-clobber $r10d, 12, implicit-def dead early-clobber $r11d, 12, implicit-def dead early-clobber $r12d, 12, implicit-def dead early-clobber $r13d, 12, implicit-def dead early-clobber $r14d, 12, implicit-def dead early-clobber $f1d, 12, implicit-def dead early-clobber $f2d, 12, implicit-def dead early-clobber $f3d, 12, implicit-def dead early-clobber $f4d, 12, implicit-def dead early-clobber $f5d, 12, implicit-def dead early-clobber $f6d, 12, implicit-def dead early-clobber $f7d, 12, implicit-def dead early-clobber $f8d, 12, implicit-def dead early-clobber $f9d, 12, implicit-def dead early-clobber $f10d, 12, implicit-def dead early-clobber $f11d, 12, implicit-def dead early-clobber $f12d, 12, implicit-def dead early-clobber $f13d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f15d270    nofpexcept WFKDB %0, %1, implicit-def $cc, implicit $fpc271    %4:gr64bit = LGHI 0272    %4:gr64bit = LOCGHI %4, 1, 15, 8, implicit killed $cc273    STG %4, %2, 0, $noreg :: (store (s64) into %ir.Dst)274    Return275 276...277 278 279# CHECK-LABEL: fun7:280# CHECK: kdb     %f0, 160(%r15)                  # 8-byte Folded Reload281---282name:            fun7283alignment:       16284tracksRegLiveness: true285registers:286  - { id: 0, class: fp64bit }287  - { id: 1, class: fp64bit }288  - { id: 2, class: addr64bit }289  - { id: 3, class: vr64bit }290  - { id: 4, class: gr64bit }291liveins:292  - { reg: '$f0d', virtual-reg: '%0' }293  - { reg: '$f2d', virtual-reg: '%1' }294  - { reg: '$r2d', virtual-reg: '%2' }295frameInfo:296  maxAlignment:    1297machineFunctionInfo: {}298body:             |299  bb.0:300    liveins: $f0d, $f2d, $r2d301  302    %2:addr64bit = COPY $r2d303    %1:fp64bit = COPY $f2d304    %0:fp64bit = COPY $f0d305    INLINEASM &"", 1, 12, implicit-def dead early-clobber $r0d, 12, implicit-def dead early-clobber $r1d, 12, implicit-def dead early-clobber $r2d, 12, implicit-def dead early-clobber $r3d, 12, implicit-def dead early-clobber $r4d, 12, implicit-def dead early-clobber $r5d, 12, implicit-def dead early-clobber $r6d, 12, implicit-def dead early-clobber $r7d, 12, implicit-def dead early-clobber $r8d, 12, implicit-def dead early-clobber $r9d, 12, implicit-def dead early-clobber $r10d, 12, implicit-def dead early-clobber $r11d, 12, implicit-def dead early-clobber $r12d, 12, implicit-def dead early-clobber $r13d, 12, implicit-def dead early-clobber $r14d, 12, implicit-def dead early-clobber $f1d, 12, implicit-def dead early-clobber $f2d, 12, implicit-def dead early-clobber $f3d, 12, implicit-def dead early-clobber $f4d, 12, implicit-def dead early-clobber $f5d, 12, implicit-def dead early-clobber $f6d, 12, implicit-def dead early-clobber $f7d, 12, implicit-def dead early-clobber $f8d, 12, implicit-def dead early-clobber $f9d, 12, implicit-def dead early-clobber $f10d, 12, implicit-def dead early-clobber $f11d, 12, implicit-def dead early-clobber $f12d, 12, implicit-def dead early-clobber $f13d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f15d306    nofpexcept WFKDB %1, %0, implicit-def $cc, implicit $fpc307    %4:gr64bit = LGHI 0308    %4:gr64bit = LOCGHI %4, 1, 15, 8, implicit killed $cc309    STG %4, %2, 0, $noreg :: (store (s64) into %ir.Dst)310    Return311 312...313 314 315# KDB can't be used if one operand is a VR64 (and not FP64).316# CHECK-LABEL: fun8:317# CHECK:      ld      %f0, 160(%r15)                  # 8-byte Reload318# CHECK-NEXT: wfkdb   %v16, %f0319---320name:            fun8321alignment:       16322tracksRegLiveness: true323registers:324  - { id: 0, class: fp64bit }325  - { id: 1, class: vr64bit }326  - { id: 2, class: addr64bit }327  - { id: 3, class: vr64bit }328  - { id: 4, class: gr64bit }329liveins:330  - { reg: '$f0d', virtual-reg: '%0' }331  - { reg: '$f2d', virtual-reg: '%1' }332  - { reg: '$r2d', virtual-reg: '%2' }333frameInfo:334  maxAlignment:    1335machineFunctionInfo: {}336body:             |337  bb.0:338    liveins: $f0d, $f2d, $r2d339  340    %2:addr64bit = COPY $r2d341    %1:vr64bit = COPY $f2d342    %0:fp64bit = COPY $f0d343    INLINEASM &"", 1, 12, implicit-def dead early-clobber $r0d, 12, implicit-def dead early-clobber $r1d, 12, implicit-def dead early-clobber $r2d, 12, implicit-def dead early-clobber $r3d, 12, implicit-def dead early-clobber $r4d, 12, implicit-def dead early-clobber $r5d, 12, implicit-def dead early-clobber $r6d, 12, implicit-def dead early-clobber $r7d, 12, implicit-def dead early-clobber $r8d, 12, implicit-def dead early-clobber $r9d, 12, implicit-def dead early-clobber $r10d, 12, implicit-def dead early-clobber $r11d, 12, implicit-def dead early-clobber $r12d, 12, implicit-def dead early-clobber $r13d, 12, implicit-def dead early-clobber $r14d, 12, implicit-def dead early-clobber $f0d, 12, implicit-def dead early-clobber $f1d, 12, implicit-def dead early-clobber $f2d, 12, implicit-def dead early-clobber $f3d, 12, implicit-def dead early-clobber $f4d, 12, implicit-def dead early-clobber $f5d, 12, implicit-def dead early-clobber $f6d, 12, implicit-def dead early-clobber $f7d, 12, implicit-def dead early-clobber $f8d, 12, implicit-def dead early-clobber $f9d, 12, implicit-def dead early-clobber $f10d, 12, implicit-def dead early-clobber $f11d, 12, implicit-def dead early-clobber $f12d, 12, implicit-def dead early-clobber $f13d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f15d344    nofpexcept WFKDB %1, %0, implicit-def $cc, implicit $fpc345    %4:gr64bit = LGHI 0346    %4:gr64bit = LOCGHI %4, 1, 15, 8, implicit killed $cc347    STG %4, %2, 0, $noreg :: (store (s64) into %ir.Dst)348    Return349 350...351 352 353# CHECK-LABEL: fun9:354# CHECK: keb     %f0, 164(%r15)                  # 4-byte Folded Reload355---356name:            fun9357alignment:       16358tracksRegLiveness: true359registers:360  - { id: 0, class: fp32bit }361  - { id: 1, class: fp32bit }362  - { id: 2, class: addr64bit }363  - { id: 3, class: vr32bit }364  - { id: 4, class: gr64bit }365liveins:366  - { reg: '$f0s', virtual-reg: '%0' }367  - { reg: '$f2s', virtual-reg: '%1' }368  - { reg: '$r2d', virtual-reg: '%2' }369frameInfo:370  maxAlignment:    1371machineFunctionInfo: {}372body:             |373  bb.0:374    liveins: $f0s, $f2s, $r2d375  376    %2:addr64bit = COPY $r2d377    %1:fp32bit = COPY $f2s378    %0:fp32bit = COPY $f0s379    INLINEASM &"", 1, 12, implicit-def dead early-clobber $r0d, 12, implicit-def dead early-clobber $r1d, 12, implicit-def dead early-clobber $r2d, 12, implicit-def dead early-clobber $r3d, 12, implicit-def dead early-clobber $r4d, 12, implicit-def dead early-clobber $r5d, 12, implicit-def dead early-clobber $r6d, 12, implicit-def dead early-clobber $r7d, 12, implicit-def dead early-clobber $r8d, 12, implicit-def dead early-clobber $r9d, 12, implicit-def dead early-clobber $r10d, 12, implicit-def dead early-clobber $r11d, 12, implicit-def dead early-clobber $r12d, 12, implicit-def dead early-clobber $r13d, 12, implicit-def dead early-clobber $r14d, 12, implicit-def dead early-clobber $f1d, 12, implicit-def dead early-clobber $f2d, 12, implicit-def dead early-clobber $f3d, 12, implicit-def dead early-clobber $f4d, 12, implicit-def dead early-clobber $f5d, 12, implicit-def dead early-clobber $f6d, 12, implicit-def dead early-clobber $f7d, 12, implicit-def dead early-clobber $f8d, 12, implicit-def dead early-clobber $f9d, 12, implicit-def dead early-clobber $f10d, 12, implicit-def dead early-clobber $f11d, 12, implicit-def dead early-clobber $f12d, 12, implicit-def dead early-clobber $f13d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f15d380    nofpexcept WFKSB %0, %1, implicit-def $cc, implicit $fpc381    %4:gr64bit = LGHI 0382    %4:gr64bit = LOCGHI %4, 1, 15, 8, implicit killed $cc383    STG %4, %2, 0, $noreg :: (store (s64) into %ir.Dst)384    Return385 386...387 388 389# CHECK-LABEL: fun10:390# CHECK: keb     %f0, 164(%r15)                  # 4-byte Folded Reload391---392name:            fun10393alignment:       16394tracksRegLiveness: true395registers:396  - { id: 0, class: fp32bit }397  - { id: 1, class: fp32bit }398  - { id: 2, class: addr64bit }399  - { id: 3, class: vr32bit }400  - { id: 4, class: gr64bit }401liveins:402  - { reg: '$f0s', virtual-reg: '%0' }403  - { reg: '$f2s', virtual-reg: '%1' }404  - { reg: '$r2d', virtual-reg: '%2' }405frameInfo:406  maxAlignment:    1407machineFunctionInfo: {}408body:             |409  bb.0:410    liveins: $f0s, $f2s, $r2d411  412    %2:addr64bit = COPY $r2d413    %1:fp32bit = COPY $f2s414    %0:fp32bit = COPY $f0s415    INLINEASM &"", 1, 12, implicit-def dead early-clobber $r0d, 12, implicit-def dead early-clobber $r1d, 12, implicit-def dead early-clobber $r2d, 12, implicit-def dead early-clobber $r3d, 12, implicit-def dead early-clobber $r4d, 12, implicit-def dead early-clobber $r5d, 12, implicit-def dead early-clobber $r6d, 12, implicit-def dead early-clobber $r7d, 12, implicit-def dead early-clobber $r8d, 12, implicit-def dead early-clobber $r9d, 12, implicit-def dead early-clobber $r10d, 12, implicit-def dead early-clobber $r11d, 12, implicit-def dead early-clobber $r12d, 12, implicit-def dead early-clobber $r13d, 12, implicit-def dead early-clobber $r14d, 12, implicit-def dead early-clobber $f1d, 12, implicit-def dead early-clobber $f2d, 12, implicit-def dead early-clobber $f3d, 12, implicit-def dead early-clobber $f4d, 12, implicit-def dead early-clobber $f5d, 12, implicit-def dead early-clobber $f6d, 12, implicit-def dead early-clobber $f7d, 12, implicit-def dead early-clobber $f8d, 12, implicit-def dead early-clobber $f9d, 12, implicit-def dead early-clobber $f10d, 12, implicit-def dead early-clobber $f11d, 12, implicit-def dead early-clobber $f12d, 12, implicit-def dead early-clobber $f13d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f15d416    nofpexcept WFKSB %1, %0, implicit-def $cc, implicit $fpc417    %4:gr64bit = LGHI 0418    %4:gr64bit = LOCGHI %4, 1, 15, 8, implicit killed $cc419    STG %4, %2, 0, $noreg :: (store (s64) into %ir.Dst)420    Return421 422...423 424 425# CEB can't be used if one operand is a VR32 (and not FP32).426# CHECK-LABEL: fun11:427# CHECK:      lde     %f0, 164(%r15)                  # 4-byte Reload428# CHECK-NEXT: wfksb   %v16, %f0429---430name:            fun11431alignment:       16432tracksRegLiveness: true433registers:434  - { id: 0, class: fp32bit }435  - { id: 1, class: vr32bit }436  - { id: 2, class: addr64bit }437  - { id: 3, class: vr32bit }438  - { id: 4, class: gr64bit }439liveins:440  - { reg: '$f0s', virtual-reg: '%0' }441  - { reg: '$f2s', virtual-reg: '%1' }442  - { reg: '$r2d', virtual-reg: '%2' }443frameInfo:444  maxAlignment:    1445machineFunctionInfo: {}446body:             |447  bb.0:448    liveins: $f0s, $f2s, $r2d449  450    %2:addr64bit = COPY $r2d451    %1:vr32bit = COPY $f2s452    %0:fp32bit = COPY $f0s453    INLINEASM &"", 1, 12, implicit-def dead early-clobber $r0d, 12, implicit-def dead early-clobber $r1d, 12, implicit-def dead early-clobber $r2d, 12, implicit-def dead early-clobber $r3d, 12, implicit-def dead early-clobber $r4d, 12, implicit-def dead early-clobber $r5d, 12, implicit-def dead early-clobber $r6d, 12, implicit-def dead early-clobber $r7d, 12, implicit-def dead early-clobber $r8d, 12, implicit-def dead early-clobber $r9d, 12, implicit-def dead early-clobber $r10d, 12, implicit-def dead early-clobber $r11d, 12, implicit-def dead early-clobber $r12d, 12, implicit-def dead early-clobber $r13d, 12, implicit-def dead early-clobber $r14d, 12, implicit-def dead early-clobber $f0d, 12, implicit-def dead early-clobber $f1d, 12, implicit-def dead early-clobber $f2d, 12, implicit-def dead early-clobber $f3d, 12, implicit-def dead early-clobber $f4d, 12, implicit-def dead early-clobber $f5d, 12, implicit-def dead early-clobber $f6d, 12, implicit-def dead early-clobber $f7d, 12, implicit-def dead early-clobber $f8d, 12, implicit-def dead early-clobber $f9d, 12, implicit-def dead early-clobber $f10d, 12, implicit-def dead early-clobber $f11d, 12, implicit-def dead early-clobber $f12d, 12, implicit-def dead early-clobber $f13d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f15d454    nofpexcept WFKSB %1, %0, implicit-def $cc, implicit $fpc455    %4:gr64bit = LGHI 0456    %4:gr64bit = LOCGHI %4, 1, 15, 8, implicit killed $cc457    STG %4, %2, 0, $noreg :: (store (s64) into %ir.Dst)458    Return459 460...461 462 463# This test case involves a 128 bit operand (VGMF generating float 1.0).464# CHECK-LABEL: fun12:465# CHECK: vgmf    %v0, 2, 8466# CHECK-NEXT: ceb     %f0, 164(%r15)          # 4-byte Folded Reload467---468name:            fun12469alignment:       16470tracksRegLiveness: true471registers:472  - { id: 0, class: fp32bit }473  - { id: 1, class: vr128bit }474  - { id: 2, class: addr64bit }475  - { id: 3, class: vr32bit }476  - { id: 4, class: gr64bit }477liveins:478  - { reg: '$f0s', virtual-reg: '%0' }479  - { reg: '$f2s', virtual-reg: '%1' }480  - { reg: '$r2d', virtual-reg: '%2' }481frameInfo:482  maxAlignment:    1483machineFunctionInfo: {}484body:             |485  bb.0:486    liveins: $f0s, $f2s, $r2d487  488    %2:addr64bit = COPY $r2d489    %0:fp32bit = COPY $f0s490    INLINEASM &"", 1, 12, implicit-def dead early-clobber $r0d, 12, implicit-def dead early-clobber $r1d, 12, implicit-def dead early-clobber $r2d, 12, implicit-def dead early-clobber $r3d, 12, implicit-def dead early-clobber $r4d, 12, implicit-def dead early-clobber $r5d, 12, implicit-def dead early-clobber $r6d, 12, implicit-def dead early-clobber $r7d, 12, implicit-def dead early-clobber $r8d, 12, implicit-def dead early-clobber $r9d, 12, implicit-def dead early-clobber $r10d, 12, implicit-def dead early-clobber $r11d, 12, implicit-def dead early-clobber $r12d, 12, implicit-def dead early-clobber $r13d, 12, implicit-def dead early-clobber $r14d, 12, implicit-def dead early-clobber $f0d, 12, implicit-def dead early-clobber $f1d, 12, implicit-def dead early-clobber $f2d, 12, implicit-def dead early-clobber $f3d, 12, implicit-def dead early-clobber $f4d, 12, implicit-def dead early-clobber $f5d, 12, implicit-def dead early-clobber $f6d, 12, implicit-def dead early-clobber $f7d, 12, implicit-def dead early-clobber $f8d, 12, implicit-def dead early-clobber $f9d, 12, implicit-def dead early-clobber $f10d, 12, implicit-def dead early-clobber $f11d, 12, implicit-def dead early-clobber $f12d, 12, implicit-def dead early-clobber $f13d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f15d491    %1:vr128bit = VGMF 2, 8492    nofpexcept WFCSB %0, %1.subreg_h32:vr128bit, implicit-def $cc, implicit $fpc493    %4:gr64bit = LGHI 0494    %4:gr64bit = LOCGHI %4, 1, 15, 8, implicit killed $cc495    STG %4, %2, 0, $noreg :: (store (s64) into %ir.Dst)496    Return497 498...499