brintos

brintos / llvm-project-archived public Read only

0
0
Text · 50.9 KiB · c0be090 Raw
829 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(double %arg0, double %arg1, ptr %Dst) { ret void }20  define void @fun13(double %arg0, double %arg1, ptr %Dst) { ret void }21  define void @fun14(double %arg0, double %arg1, ptr %Dst) { ret void }22  define void @fun15(float %arg0, float %arg1, ptr %Dst) { ret void }23  define void @fun16(float %arg0, float %arg1, ptr %Dst) { ret void }24  define void @fun17(float %arg0, float %arg1, ptr %Dst) { ret void }25  define void @fun18(double %arg0, double %arg1, ptr %Dst) { ret void }26  define void @fun19(double %arg0, double %arg1, ptr %Dst) { ret void }27  define void @fun20(double %arg0, double %arg1, ptr %Dst) { ret void }28  define void @fun21(float %arg0, float %arg1, ptr %Dst) { ret void }29  define void @fun22(float %arg0, float %arg1, ptr %Dst) { ret void }30  define void @fun23(float %arg0, float %arg1, ptr %Dst) { ret void }31 32...33 34# Test with both orders of operands since some operations are commutative.35 36# CHECK-LABEL: fun0:37# CHECK: adb     %f0, 160(%r15)                  # 8-byte Folded Reload38---39name:            fun040alignment:       1641tracksRegLiveness: true42registers:43  - { id: 0, class: fp64bit }44  - { id: 1, class: fp64bit }45  - { id: 2, class: addr64bit }46  - { id: 3, class: vr64bit }47liveins:48  - { reg: '$f0d', virtual-reg: '%0' }49  - { reg: '$f2d', virtual-reg: '%1' }50  - { reg: '$r2d', virtual-reg: '%2' }51frameInfo:52  maxAlignment:    153machineFunctionInfo: {}54body:             |55  bb.0:56    liveins: $f0d, $f2d, $r2d57  58    %2:addr64bit = COPY $r2d59    %1:fp64bit = COPY $f2d60    %0:fp64bit = COPY $f0d61    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 $f15d62    %3:vr64bit = nofpexcept WFADB %0, %1, implicit $fpc63    VST64 %3, %2, 0, $noreg :: (store (s64) into %ir.Dst)64    Return65 66...67 68 69# CHECK-LABEL: fun1:70# CHECK: adb     %f0, 160(%r15)                  # 8-byte Folded Reload71---72name:            fun173alignment:       1674tracksRegLiveness: true75registers:76  - { id: 0, class: fp64bit }77  - { id: 1, class: fp64bit }78  - { id: 2, class: addr64bit }79  - { id: 3, class: vr64bit }80liveins:81  - { reg: '$f0d', virtual-reg: '%0' }82  - { reg: '$f2d', virtual-reg: '%1' }83  - { reg: '$r2d', virtual-reg: '%2' }84frameInfo:85  maxAlignment:    186machineFunctionInfo: {}87body:             |88  bb.0:89    liveins: $f0d, $f2d, $r2d90  91    %2:addr64bit = COPY $r2d92    %1:fp64bit = COPY $f2d93    %0:fp64bit = COPY $f0d94    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 $f15d95    %3:vr64bit = nofpexcept WFADB %1, %0, implicit $fpc96    VST64 %3, %2, 0, $noreg :: (store (s64) into %ir.Dst)97    Return98 99...100 101# ADB can't be used if one operand is a VR64 (and not FP64).102# CHECK-LABEL: fun2:103# CHECK: wfadb   %f0, %v16, %f0104---105name:            fun2106alignment:       16107tracksRegLiveness: true108registers:109  - { id: 0, class: fp64bit }110  - { id: 1, class: vr64bit }111  - { id: 2, class: addr64bit }112  - { id: 3, class: vr64bit }113liveins:114  - { reg: '$f0d', virtual-reg: '%0' }115  - { reg: '$f2d', virtual-reg: '%1' }116  - { reg: '$r2d', virtual-reg: '%2' }117frameInfo:118  maxAlignment:    1119machineFunctionInfo: {}120body:             |121  bb.0:122    liveins: $f0d, $f2d, $r2d123  124    %2:addr64bit = COPY $r2d125    %1:vr64bit = COPY $f2d126    %0:fp64bit = COPY $f0d127    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 $f15d128    %3:vr64bit = nofpexcept WFADB %1, %0, implicit $fpc129    VST64 %3, %2, 0, $noreg :: (store (s64) into %ir.Dst)130    Return131 132...133 134 135# CHECK-LABEL: fun3:136# CHECK: aeb     %f0, 164(%r15)                  # 4-byte Folded Reload137---138name:            fun3139alignment:       16140tracksRegLiveness: true141registers:142  - { id: 0, class: fp32bit }143  - { id: 1, class: fp32bit }144  - { id: 2, class: addr64bit }145  - { id: 3, class: vr32bit }146liveins:147  - { reg: '$f0s', virtual-reg: '%0' }148  - { reg: '$f2s', virtual-reg: '%1' }149  - { reg: '$r2d', virtual-reg: '%2' }150frameInfo:151  maxAlignment:    1152machineFunctionInfo: {}153body:             |154  bb.0:155    liveins: $f0s, $f2s, $r2d156  157    %2:addr64bit = COPY $r2d158    %1:fp32bit = COPY $f2s159    %0:fp32bit = COPY $f0s160    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 $f15d161    %3:vr32bit = nofpexcept WFASB %0, %1, implicit $fpc162    VST32 %3, %2, 0, $noreg :: (store (s32) into %ir.Dst)163    Return164 165...166 167 168# CHECK-LABEL: fun4:169# CHECK: aeb     %f0, 164(%r15)                  # 4-byte Folded Reload170---171name:            fun4172alignment:       16173tracksRegLiveness: true174registers:175  - { id: 0, class: fp32bit }176  - { id: 1, class: fp32bit }177  - { id: 2, class: addr64bit }178  - { id: 3, class: vr32bit }179liveins:180  - { reg: '$f0s', virtual-reg: '%0' }181  - { reg: '$f2s', virtual-reg: '%1' }182  - { reg: '$r2d', virtual-reg: '%2' }183frameInfo:184  maxAlignment:    1185machineFunctionInfo: {}186body:             |187  bb.0:188    liveins: $f0s, $f2s, $r2d189  190    %2:addr64bit = COPY $r2d191    %1:fp32bit = COPY $f2s192    %0:fp32bit = COPY $f0s193    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 $f15d194    %3:vr32bit = nofpexcept WFASB %1, %0, implicit $fpc195    VST32 %3, %2, 0, $noreg :: (store (s32) into %ir.Dst)196    Return197 198...199 200 201# AEB can't be used if one operand is a VR64 (and not FP64).202# CHECK-LABEL: fun5:203# CHECK: wfasb   %f0, %v16, %f0204---205name:            fun5206alignment:       16207tracksRegLiveness: true208registers:209  - { id: 0, class: fp32bit }210  - { id: 1, class: vr32bit }211  - { id: 2, class: addr64bit }212  - { id: 3, class: vr32bit }213liveins:214  - { reg: '$f0s', virtual-reg: '%0' }215  - { reg: '$f2s', virtual-reg: '%1' }216  - { reg: '$r2d', virtual-reg: '%2' }217frameInfo:218  maxAlignment:    1219machineFunctionInfo: {}220body:             |221  bb.0:222    liveins: $f0s, $f2s, $r2d223  224    %2:addr64bit = COPY $r2d225    %1:vr32bit = COPY $f2s226    %0:fp32bit = COPY $f0s227    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 $f15d228    %3:vr32bit = nofpexcept WFASB %1, %0, implicit $fpc229    VST32 %3, %2, 0, $noreg :: (store (s32) into %ir.Dst)230    Return231 232...233 234 235# CHECK-LABEL: fun6:236# CHECK: sdb     %f0, 160(%r15)                  # 8-byte Folded Reload237---238name:            fun6239alignment:       16240tracksRegLiveness: true241registers:242  - { id: 0, class: fp64bit }243  - { id: 1, class: fp64bit }244  - { id: 2, class: addr64bit }245  - { id: 3, class: vr64bit }246liveins:247  - { reg: '$f0d', virtual-reg: '%0' }248  - { reg: '$f2d', virtual-reg: '%1' }249  - { reg: '$r2d', virtual-reg: '%2' }250frameInfo:251  maxAlignment:    1252machineFunctionInfo: {}253body:             |254  bb.0:255    liveins: $f0d, $f2d, $r2d256  257    %2:addr64bit = COPY $r2d258    %1:fp64bit = COPY $f2d259    %0:fp64bit = COPY $f0d260    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 $f15d261    %3:vr64bit = nofpexcept WFSDB %0, %1, implicit $fpc262    VST64 %3, %2, 0, $noreg :: (store (s64) into %ir.Dst)263    Return264 265...266 267 268# CHECK-LABEL: fun7:269# CHECK: wfsdb   %f0, %f1, %f0270---271name:            fun7272alignment:       16273tracksRegLiveness: true274registers:275  - { id: 0, class: fp64bit }276  - { id: 1, class: fp64bit }277  - { id: 2, class: addr64bit }278  - { id: 3, class: vr64bit }279liveins:280  - { reg: '$f0d', virtual-reg: '%0' }281  - { reg: '$f2d', virtual-reg: '%1' }282  - { reg: '$r2d', virtual-reg: '%2' }283frameInfo:284  maxAlignment:    1285machineFunctionInfo: {}286body:             |287  bb.0:288    liveins: $f0d, $f2d, $r2d289  290    %2:addr64bit = COPY $r2d291    %1:fp64bit = COPY $f2d292    %0:fp64bit = COPY $f0d293    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 $f15d294    %3:vr64bit = nofpexcept WFSDB %1, %0, implicit $fpc295    VST64 %3, %2, 0, $noreg :: (store (s64) into %ir.Dst)296    Return297 298...299 300# SDB can't be used if one operand is a VR64 (and not FP64).301# CHECK-LABEL: fun8:302# CHECK: wfsdb   %f0, %f0, %v16303---304name:            fun8305alignment:       16306tracksRegLiveness: true307registers:308  - { id: 0, class: fp64bit }309  - { id: 1, class: vr64bit }310  - { id: 2, class: addr64bit }311  - { id: 3, class: vr64bit }312liveins:313  - { reg: '$f0d', virtual-reg: '%0' }314  - { reg: '$f2d', virtual-reg: '%1' }315  - { reg: '$r2d', virtual-reg: '%2' }316frameInfo:317  maxAlignment:    1318machineFunctionInfo: {}319body:             |320  bb.0:321    liveins: $f0d, $f2d, $r2d322  323    %2:addr64bit = COPY $r2d324    %1:vr64bit = COPY $f2d325    %0:fp64bit = COPY $f0d326    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 $f15d327    %3:vr64bit = nofpexcept WFSDB %0, %1, implicit $fpc328    VST64 %3, %2, 0, $noreg :: (store (s64) into %ir.Dst)329    Return330 331...332 333 334# CHECK-LABEL: fun9:335# CHECK: seb     %f0, 164(%r15)                  # 4-byte Folded Reload336---337name:            fun9338alignment:       16339tracksRegLiveness: true340registers:341  - { id: 0, class: fp32bit }342  - { id: 1, class: fp32bit }343  - { id: 2, class: addr64bit }344  - { id: 3, class: vr32bit }345liveins:346  - { reg: '$f0s', virtual-reg: '%0' }347  - { reg: '$f2s', virtual-reg: '%1' }348  - { reg: '$r2d', virtual-reg: '%2' }349frameInfo:350  maxAlignment:    1351machineFunctionInfo: {}352body:             |353  bb.0:354    liveins: $f0s, $f2s, $r2d355  356    %2:addr64bit = COPY $r2d357    %1:fp32bit = COPY $f2s358    %0:fp32bit = COPY $f0s359    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 $f15d360    %3:vr32bit = nofpexcept WFSSB %0, %1, implicit $fpc361    VST32 %3, %2, 0, $noreg :: (store (s32) into %ir.Dst)362    Return363 364...365 366 367# CHECK-LABEL: fun10:368# CHECK: wfssb   %f0, %f1, %f0369---370name:            fun10371alignment:       16372tracksRegLiveness: true373registers:374  - { id: 0, class: fp32bit }375  - { id: 1, class: fp32bit }376  - { id: 2, class: addr64bit }377  - { id: 3, class: vr32bit }378liveins:379  - { reg: '$f0s', virtual-reg: '%0' }380  - { reg: '$f2s', virtual-reg: '%1' }381  - { reg: '$r2d', virtual-reg: '%2' }382frameInfo:383  maxAlignment:    1384machineFunctionInfo: {}385body:             |386  bb.0:387    liveins: $f0s, $f2s, $r2d388  389    %2:addr64bit = COPY $r2d390    %1:fp32bit = COPY $f2s391    %0:fp32bit = COPY $f0s392    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 $f15d393    %3:vr32bit = nofpexcept WFSSB %1, %0, implicit $fpc394    VST32 %3, %2, 0, $noreg :: (store (s32) into %ir.Dst)395    Return396 397...398 399 400# SEB can't be used if one operand is a VR32 (and not FP32).401# CHECK-LABEL: fun11:402# CHECK: wfssb   %f0, %f0, %v16403---404name:            fun11405alignment:       16406tracksRegLiveness: true407registers:408  - { id: 0, class: fp32bit }409  - { id: 1, class: vr32bit }410  - { id: 2, class: addr64bit }411  - { id: 3, class: vr32bit }412liveins:413  - { reg: '$f0s', virtual-reg: '%0' }414  - { reg: '$f2s', virtual-reg: '%1' }415  - { reg: '$r2d', virtual-reg: '%2' }416frameInfo:417  maxAlignment:    1418machineFunctionInfo: {}419body:             |420  bb.0:421    liveins: $f0s, $f2s, $r2d422  423    %2:addr64bit = COPY $r2d424    %1:vr32bit = COPY $f2s425    %0:fp32bit = COPY $f0s426    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 $f15d427    %3:vr32bit = nofpexcept WFSSB %0, %1, implicit $fpc428    VST32 %3, %2, 0, $noreg :: (store (s32) into %ir.Dst)429    Return430 431...432 433# CHECK-LABEL: fun12:434# CHECK: ddb     %f0, 160(%r15)                  # 8-byte Folded Reload435---436name:            fun12437alignment:       16438tracksRegLiveness: true439registers:440  - { id: 0, class: fp64bit }441  - { id: 1, class: fp64bit }442  - { id: 2, class: addr64bit }443  - { id: 3, class: vr64bit }444liveins:445  - { reg: '$f0d', virtual-reg: '%0' }446  - { reg: '$f2d', virtual-reg: '%1' }447  - { reg: '$r2d', virtual-reg: '%2' }448frameInfo:449  maxAlignment:    1450machineFunctionInfo: {}451body:             |452  bb.0:453    liveins: $f0d, $f2d, $r2d454  455    %2:addr64bit = COPY $r2d456    %1:fp64bit = COPY $f2d457    %0:fp64bit = COPY $f0d458    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 $f15d459    %3:vr64bit = nofpexcept WFDDB %0, %1, implicit $fpc460    VST64 %3, %2, 0, $noreg :: (store (s64) into %ir.Dst)461    Return462 463...464 465 466# CHECK-LABEL: fun13:467# CHECK: wfddb   %f0, %f1, %f0468---469name:            fun13470alignment:       16471tracksRegLiveness: true472registers:473  - { id: 0, class: fp64bit }474  - { id: 1, class: fp64bit }475  - { id: 2, class: addr64bit }476  - { id: 3, class: vr64bit }477liveins:478  - { reg: '$f0d', virtual-reg: '%0' }479  - { reg: '$f2d', virtual-reg: '%1' }480  - { reg: '$r2d', virtual-reg: '%2' }481frameInfo:482  maxAlignment:    1483machineFunctionInfo: {}484body:             |485  bb.0:486    liveins: $f0d, $f2d, $r2d487  488    %2:addr64bit = COPY $r2d489    %1:fp64bit = COPY $f2d490    %0:fp64bit = COPY $f0d491    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 $f15d492    %3:vr64bit = nofpexcept WFDDB %1, %0, implicit $fpc493    VST64 %3, %2, 0, $noreg :: (store (s64) into %ir.Dst)494    Return495 496...497 498# DDB can't be used if one operand is a VR64 (and not FP64).499# CHECK-LABEL: fun14:500# CHECK: wfddb   %f0, %f0, %v16501---502name:            fun14503alignment:       16504tracksRegLiveness: true505registers:506  - { id: 0, class: fp64bit }507  - { id: 1, class: vr64bit }508  - { id: 2, class: addr64bit }509  - { id: 3, class: vr64bit }510liveins:511  - { reg: '$f0d', virtual-reg: '%0' }512  - { reg: '$f2d', virtual-reg: '%1' }513  - { reg: '$r2d', virtual-reg: '%2' }514frameInfo:515  maxAlignment:    1516machineFunctionInfo: {}517body:             |518  bb.0:519    liveins: $f0d, $f2d, $r2d520  521    %2:addr64bit = COPY $r2d522    %1:vr64bit = COPY $f2d523    %0:fp64bit = COPY $f0d524    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 $f15d525    %3:vr64bit = nofpexcept WFDDB %0, %1, implicit $fpc526    VST64 %3, %2, 0, $noreg :: (store (s64) into %ir.Dst)527    Return528 529...530 531 532# CHECK-LABEL: fun15:533# CHECK: deb     %f0, 164(%r15)                  # 4-byte Folded Reload534---535name:            fun15536alignment:       16537tracksRegLiveness: true538registers:539  - { id: 0, class: fp32bit }540  - { id: 1, class: fp32bit }541  - { id: 2, class: addr64bit }542  - { id: 3, class: vr32bit }543liveins:544  - { reg: '$f0s', virtual-reg: '%0' }545  - { reg: '$f2s', virtual-reg: '%1' }546  - { reg: '$r2d', virtual-reg: '%2' }547frameInfo:548  maxAlignment:    1549machineFunctionInfo: {}550body:             |551  bb.0:552    liveins: $f0s, $f2s, $r2d553  554    %2:addr64bit = COPY $r2d555    %1:fp32bit = COPY $f2s556    %0:fp32bit = COPY $f0s557    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 $f15d558    %3:vr32bit = nofpexcept WFDSB %0, %1, implicit $fpc559    VST32 %3, %2, 0, $noreg :: (store (s32) into %ir.Dst)560    Return561 562...563 564 565# CHECK-LABEL: fun16:566# CHECK: wfdsb   %f0, %f1, %f0567---568name:            fun16569alignment:       16570tracksRegLiveness: true571registers:572  - { id: 0, class: fp32bit }573  - { id: 1, class: fp32bit }574  - { id: 2, class: addr64bit }575  - { id: 3, class: vr32bit }576liveins:577  - { reg: '$f0s', virtual-reg: '%0' }578  - { reg: '$f2s', virtual-reg: '%1' }579  - { reg: '$r2d', virtual-reg: '%2' }580frameInfo:581  maxAlignment:    1582machineFunctionInfo: {}583body:             |584  bb.0:585    liveins: $f0s, $f2s, $r2d586  587    %2:addr64bit = COPY $r2d588    %1:fp32bit = COPY $f2s589    %0:fp32bit = COPY $f0s590    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 $f15d591    %3:vr32bit = nofpexcept WFDSB %1, %0, implicit $fpc592    VST32 %3, %2, 0, $noreg :: (store (s32) into %ir.Dst)593    Return594 595...596 597 598# DEB can't be used if one operand is a VR32 (and not FP32).599# CHECK-LABEL: fun17:600# CHECK: wfdsb   %f0, %f0, %v16601---602name:            fun17603alignment:       16604tracksRegLiveness: true605registers:606  - { id: 0, class: fp32bit }607  - { id: 1, class: vr32bit }608  - { id: 2, class: addr64bit }609  - { id: 3, class: vr32bit }610liveins:611  - { reg: '$f0s', virtual-reg: '%0' }612  - { reg: '$f2s', virtual-reg: '%1' }613  - { reg: '$r2d', virtual-reg: '%2' }614frameInfo:615  maxAlignment:    1616machineFunctionInfo: {}617body:             |618  bb.0:619    liveins: $f0s, $f2s, $r2d620  621    %2:addr64bit = COPY $r2d622    %1:vr32bit = COPY $f2s623    %0:fp32bit = COPY $f0s624    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 $f15d625    %3:vr32bit = nofpexcept WFDSB %0, %1, implicit $fpc626    VST32 %3, %2, 0, $noreg :: (store (s32) into %ir.Dst)627    Return628 629...630 631 632# CHECK-LABEL: fun18:633# CHECK: mdb     %f0, 160(%r15)                  # 8-byte Folded Reload634---635name:            fun18636alignment:       16637tracksRegLiveness: true638registers:639  - { id: 0, class: fp64bit }640  - { id: 1, class: fp64bit }641  - { id: 2, class: addr64bit }642  - { id: 3, class: vr64bit }643liveins:644  - { reg: '$f0d', virtual-reg: '%0' }645  - { reg: '$f2d', virtual-reg: '%1' }646  - { reg: '$r2d', virtual-reg: '%2' }647frameInfo:648  maxAlignment:    1649machineFunctionInfo: {}650body:             |651  bb.0:652    liveins: $f0d, $f2d, $r2d653  654    %2:addr64bit = COPY $r2d655    %1:fp64bit = COPY $f2d656    %0:fp64bit = COPY $f0d657    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 $f15d658    %3:vr64bit = nofpexcept WFMDB %0, %1, implicit $fpc659    VST64 %3, %2, 0, $noreg :: (store (s64) into %ir.Dst)660    Return661 662...663 664 665# CHECK-LABEL: fun19:666# CHECK: mdb     %f0, 160(%r15)                  # 8-byte Folded Reload667---668name:            fun19669alignment:       16670tracksRegLiveness: true671registers:672  - { id: 0, class: fp64bit }673  - { id: 1, class: fp64bit }674  - { id: 2, class: addr64bit }675  - { id: 3, class: vr64bit }676liveins:677  - { reg: '$f0d', virtual-reg: '%0' }678  - { reg: '$f2d', virtual-reg: '%1' }679  - { reg: '$r2d', virtual-reg: '%2' }680frameInfo:681  maxAlignment:    1682machineFunctionInfo: {}683body:             |684  bb.0:685    liveins: $f0d, $f2d, $r2d686  687    %2:addr64bit = COPY $r2d688    %1:fp64bit = COPY $f2d689    %0:fp64bit = COPY $f0d690    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 $f15d691    %3:vr64bit = nofpexcept WFMDB %1, %0, implicit $fpc692    VST64 %3, %2, 0, $noreg :: (store (s64) into %ir.Dst)693    Return694 695...696 697# MDB can't be used if one operand is a VR64 (and not FP64).698# CHECK-LABEL: fun20:699# CHECK: wfmdb   %f0, %v16, %f0700---701name:            fun20702alignment:       16703tracksRegLiveness: true704registers:705  - { id: 0, class: fp64bit }706  - { id: 1, class: vr64bit }707  - { id: 2, class: addr64bit }708  - { id: 3, class: vr64bit }709liveins:710  - { reg: '$f0d', virtual-reg: '%0' }711  - { reg: '$f2d', virtual-reg: '%1' }712  - { reg: '$r2d', virtual-reg: '%2' }713frameInfo:714  maxAlignment:    1715machineFunctionInfo: {}716body:             |717  bb.0:718    liveins: $f0d, $f2d, $r2d719  720    %2:addr64bit = COPY $r2d721    %1:vr64bit = COPY $f2d722    %0:fp64bit = COPY $f0d723    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 $f15d724    %3:vr64bit = nofpexcept WFMDB %1, %0, implicit $fpc725    VST64 %3, %2, 0, $noreg :: (store (s64) into %ir.Dst)726    Return727 728...729 730 731# CHECK-LABEL: fun21:732# CHECK: meeb    %f0, 164(%r15)                  # 4-byte Folded Reload733---734name:            fun21735alignment:       16736tracksRegLiveness: true737registers:738  - { id: 0, class: fp32bit }739  - { id: 1, class: fp32bit }740  - { id: 2, class: addr64bit }741  - { id: 3, class: vr32bit }742liveins:743  - { reg: '$f0s', virtual-reg: '%0' }744  - { reg: '$f2s', virtual-reg: '%1' }745  - { reg: '$r2d', virtual-reg: '%2' }746frameInfo:747  maxAlignment:    1748machineFunctionInfo: {}749body:             |750  bb.0:751    liveins: $f0s, $f2s, $r2d752  753    %2:addr64bit = COPY $r2d754    %1:fp32bit = COPY $f2s755    %0:fp32bit = COPY $f0s756    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 $f15d757    %3:vr32bit = nofpexcept WFMSB %0, %1, implicit $fpc758    VST32 %3, %2, 0, $noreg :: (store (s32) into %ir.Dst)759    Return760 761...762 763 764# CHECK-LABEL: fun22:765# CHECK: meeb    %f0, 164(%r15)                  # 4-byte Folded Reload766---767name:            fun22768alignment:       16769tracksRegLiveness: true770registers:771  - { id: 0, class: fp32bit }772  - { id: 1, class: fp32bit }773  - { id: 2, class: addr64bit }774  - { id: 3, class: vr32bit }775liveins:776  - { reg: '$f0s', virtual-reg: '%0' }777  - { reg: '$f2s', virtual-reg: '%1' }778  - { reg: '$r2d', virtual-reg: '%2' }779frameInfo:780  maxAlignment:    1781machineFunctionInfo: {}782body:             |783  bb.0:784    liveins: $f0s, $f2s, $r2d785  786    %2:addr64bit = COPY $r2d787    %1:fp32bit = COPY $f2s788    %0:fp32bit = COPY $f0s789    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 $f15d790    %3:vr32bit = nofpexcept WFMSB %1, %0, implicit $fpc791    VST32 %3, %2, 0, $noreg :: (store (s32) into %ir.Dst)792    Return793 794...795 796 797# MEEB can't be used if one operand is a VR32 (and not FP32).798# CHECK-LABEL: fun23:799# CHECK: wfmsb   %f0, %v16, %f0800---801name:            fun23802alignment:       16803tracksRegLiveness: true804registers:805  - { id: 0, class: fp32bit }806  - { id: 1, class: vr32bit }807  - { id: 2, class: addr64bit }808  - { id: 3, class: vr32bit }809liveins:810  - { reg: '$f0s', virtual-reg: '%0' }811  - { reg: '$f2s', virtual-reg: '%1' }812  - { reg: '$r2d', virtual-reg: '%2' }813frameInfo:814  maxAlignment:    1815machineFunctionInfo: {}816body:             |817  bb.0:818    liveins: $f0s, $f2s, $r2d819  820    %2:addr64bit = COPY $r2d821    %1:vr32bit = COPY $f2s822    %0:fp32bit = COPY $f0s823    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 $f15d824    %3:vr32bit = nofpexcept WFMSB %1, %0, implicit $fpc825    VST32 %3, %2, 0, $noreg :: (store (s32) into %ir.Dst)826    Return827 828...829