brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.9 KiB · e36287c Raw
501 lines · plain
1# RUN: llc -mtriple=amdgcn -verify-machineinstrs -run-pass si-fold-operands  %s -o - | FileCheck -check-prefix=GCN %s2---3# GCN-LABEL: name: v_max_self_clamp_not_set_f324# GCN: %20:vgpr_32 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit $mode, implicit $exec5# GCN-NEXT: %21:vgpr_32 = V_MAX_F32_e64 0, killed %20, 0, killed %20, 0, 0, implicit $mode, implicit $exec6 7name:            v_max_self_clamp_not_set_f328tracksRegLiveness: true9registers:10  - { id: 0, class: sgpr_64 }11  - { id: 1, class: sreg_32_xm0 }12  - { id: 2, class: sgpr_32 }13  - { id: 3, class: vgpr_32 }14  - { id: 4, class: sreg_64_xexec }15  - { id: 5, class: sreg_64_xexec }16  - { id: 6, class: sreg_32 }17  - { id: 7, class: sreg_32 }18  - { id: 8, class: sreg_32_xm0 }19  - { id: 9, class: sreg_64 }20  - { id: 10, class: sreg_32_xm0 }21  - { id: 11, class: sreg_32_xm0 }22  - { id: 12, class: sgpr_64 }23  - { id: 13, class: sgpr_128 }24  - { id: 14, class: sreg_32_xm0 }25  - { id: 15, class: sreg_64 }26  - { id: 16, class: sgpr_128 }27  - { id: 17, class: vgpr_32 }28  - { id: 18, class: vreg_64 }29  - { id: 19, class: vgpr_32 }30  - { id: 20, class: vgpr_32 }31  - { id: 21, class: vgpr_32 }32  - { id: 22, class: vgpr_32 }33  - { id: 23, class: vreg_64 }34  - { id: 24, class: vgpr_32 }35  - { id: 25, class: vreg_64 }36  - { id: 26, class: vreg_64 }37liveins:38  - { reg: '$sgpr0_sgpr1', virtual-reg: '%0' }39  - { reg: '$vgpr0', virtual-reg: '%3' }40body:             |41  bb.0:42    liveins: $sgpr0_sgpr1, $vgpr043 44    %3 = COPY $vgpr045    %0 = COPY $sgpr0_sgpr146    %4 = S_LOAD_DWORDX2_IMM %0, 9, 0 :: (non-temporal dereferenceable invariant load (s64) from `ptr addrspace(4) poison`)47    %5 = S_LOAD_DWORDX2_IMM %0, 11, 0 :: (non-temporal dereferenceable invariant load (s64) from `ptr addrspace(4) poison`)48    %24 = V_ASHRREV_I32_e32 31, %3, implicit $exec49    %25 = REG_SEQUENCE %3, 1, %24, 250    %10 = S_MOV_B32 6144051    %11 = S_MOV_B32 052    %12 = REG_SEQUENCE killed %11, 1, killed %10, 253    %13 = REG_SEQUENCE killed %5, 17, %12, 1854    %14 = S_MOV_B32 255    %26 = V_LSHL_B64_e64 killed %25, 2, implicit $exec56    %16 = REG_SEQUENCE killed %4, 17, %12, 1857    %18 = COPY %2658    %17 = BUFFER_LOAD_DWORD_ADDR64 %26, killed %13, 0, 0, 0, 0, implicit $exec59    %20 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit $mode, implicit $exec60    %21 = V_MAX_F32_e64 0, killed %20, 0, killed %20, 0, 0, implicit $mode, implicit $exec61    BUFFER_STORE_DWORD_ADDR64 killed %21, %26, killed %16, 0, 0, 0, 0, implicit $exec62    S_ENDPGM 063 64...65---66# GCN-LABEL: name: v_clamp_omod_already_set_f3267# GCN: %20:vgpr_32 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit $mode, implicit $exec68# GCN: %21:vgpr_32 = V_MAX_F32_e64 0, killed %20, 0, killed %20, 1, 3, implicit $mode, implicit $exec69name:            v_clamp_omod_already_set_f3270tracksRegLiveness: true71registers:72  - { id: 0, class: sgpr_64 }73  - { id: 1, class: sreg_32_xm0 }74  - { id: 2, class: sgpr_32 }75  - { id: 3, class: vgpr_32 }76  - { id: 4, class: sreg_64_xexec }77  - { id: 5, class: sreg_64_xexec }78  - { id: 6, class: sreg_32 }79  - { id: 7, class: sreg_32 }80  - { id: 8, class: sreg_32_xm0 }81  - { id: 9, class: sreg_64 }82  - { id: 10, class: sreg_32_xm0 }83  - { id: 11, class: sreg_32_xm0 }84  - { id: 12, class: sgpr_64 }85  - { id: 13, class: sgpr_128 }86  - { id: 14, class: sreg_32_xm0 }87  - { id: 15, class: sreg_64 }88  - { id: 16, class: sgpr_128 }89  - { id: 17, class: vgpr_32 }90  - { id: 18, class: vreg_64 }91  - { id: 19, class: vgpr_32 }92  - { id: 20, class: vgpr_32 }93  - { id: 21, class: vgpr_32 }94  - { id: 22, class: vgpr_32 }95  - { id: 23, class: vreg_64 }96  - { id: 24, class: vgpr_32 }97  - { id: 25, class: vreg_64 }98  - { id: 26, class: vreg_64 }99liveins:100  - { reg: '$sgpr0_sgpr1', virtual-reg: '%0' }101  - { reg: '$vgpr0', virtual-reg: '%3' }102body:             |103  bb.0:104    liveins: $sgpr0_sgpr1, $vgpr0105 106    %3 = COPY $vgpr0107    %0 = COPY $sgpr0_sgpr1108    %4 = S_LOAD_DWORDX2_IMM %0, 9, 0 :: (non-temporal dereferenceable invariant load (s64) from `ptr addrspace(4) poison`)109    %5 = S_LOAD_DWORDX2_IMM %0, 11, 0 :: (non-temporal dereferenceable invariant load (s64) from `ptr addrspace(4) poison`)110    %24 = V_ASHRREV_I32_e32 31, %3, implicit $exec111    %25 = REG_SEQUENCE %3, 1, %24, 2112    %10 = S_MOV_B32 61440113    %11 = S_MOV_B32 0114    %12 = REG_SEQUENCE killed %11, 1, killed %10, 2115    %13 = REG_SEQUENCE killed %5, 17, %12, 18116    %14 = S_MOV_B32 2117    %26 = V_LSHL_B64_e64 killed %25, 2, implicit $exec118    %16 = REG_SEQUENCE killed %4, 17, %12, 18119    %18 = COPY %26120    %17 = BUFFER_LOAD_DWORD_ADDR64 %26, killed %13, 0, 0, 0, 0, implicit $exec121    %20 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit $mode, implicit $exec122    %21 = V_MAX_F32_e64 0, killed %20, 0, killed %20, 1, 3, implicit $mode, implicit $exec123    BUFFER_STORE_DWORD_ADDR64 killed %21, %26, killed %16, 0, 0, 0, 0, implicit $exec124    S_ENDPGM 0125...126---127# Don't fold a mul that looks like an omod if itself has omod set128 129# GCN-LABEL: name: v_omod_mul_omod_already_set_f32130# GCN: %20:vgpr_32 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit $mode, implicit $exec131# GCN-NEXT: %21:vgpr_32 = V_MUL_F32_e64 0, killed %20, 0, 1056964608, 0, 3, implicit $mode, implicit $exec132name:            v_omod_mul_omod_already_set_f32133tracksRegLiveness: true134registers:135  - { id: 0, class: sgpr_64 }136  - { id: 1, class: sreg_32_xm0 }137  - { id: 2, class: sgpr_32 }138  - { id: 3, class: vgpr_32 }139  - { id: 4, class: sreg_64_xexec }140  - { id: 5, class: sreg_64_xexec }141  - { id: 6, class: sreg_32 }142  - { id: 7, class: sreg_32 }143  - { id: 8, class: sreg_32_xm0 }144  - { id: 9, class: sreg_64 }145  - { id: 10, class: sreg_32_xm0 }146  - { id: 11, class: sreg_32_xm0 }147  - { id: 12, class: sgpr_64 }148  - { id: 13, class: sgpr_128 }149  - { id: 14, class: sreg_32_xm0 }150  - { id: 15, class: sreg_64 }151  - { id: 16, class: sgpr_128 }152  - { id: 17, class: vgpr_32 }153  - { id: 18, class: vreg_64 }154  - { id: 19, class: vgpr_32 }155  - { id: 20, class: vgpr_32 }156  - { id: 21, class: vgpr_32 }157  - { id: 22, class: vgpr_32 }158  - { id: 23, class: vreg_64 }159  - { id: 24, class: vgpr_32 }160  - { id: 25, class: vreg_64 }161  - { id: 26, class: vreg_64 }162liveins:163  - { reg: '$sgpr0_sgpr1', virtual-reg: '%0' }164  - { reg: '$vgpr0', virtual-reg: '%3' }165body:             |166  bb.0:167    liveins: $sgpr0_sgpr1, $vgpr0168 169    %3 = COPY $vgpr0170    %0 = COPY $sgpr0_sgpr1171    %4 = S_LOAD_DWORDX2_IMM %0, 9, 0 :: (non-temporal dereferenceable invariant load (s64) from `ptr addrspace(4) poison`)172    %5 = S_LOAD_DWORDX2_IMM %0, 11, 0 :: (non-temporal dereferenceable invariant load (s64) from `ptr addrspace(4) poison`)173    %24 = V_ASHRREV_I32_e32 31, %3, implicit $exec174    %25 = REG_SEQUENCE %3, 1, %24, 2175    %10 = S_MOV_B32 61440176    %11 = S_MOV_B32 0177    %12 = REG_SEQUENCE killed %11, 1, killed %10, 2178    %13 = REG_SEQUENCE killed %5, 17, %12, 18179    %14 = S_MOV_B32 2180    %26 = V_LSHL_B64_e64 killed %25, 2, implicit $exec181    %16 = REG_SEQUENCE killed %4, 17, %12, 18182    %18 = COPY %26183    %17 = BUFFER_LOAD_DWORD_ADDR64 %26, killed %13, 0, 0, 0, 0, implicit $exec184    %20 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit $mode, implicit $exec185    %21 = V_MUL_F32_e64 0, killed %20, 0, 1056964608, 0, 3, implicit $mode, implicit $exec186    BUFFER_STORE_DWORD_ADDR64 killed %21, %26, killed %16, 0, 0, 0, 0, implicit $exec187    S_ENDPGM 0188 189...190---191# Don't fold a mul that looks like an omod if itself has clamp set192# This might be OK, but would require folding the clamp at the same time.193# GCN-LABEL: name: v_omod_mul_clamp_already_set_f32194# GCN: %20:vgpr_32 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit $mode, implicit $exec195# GCN-NEXT: %21:vgpr_32 = V_MUL_F32_e64 0, killed %20, 0, 1056964608, 1, 0, implicit $mode, implicit $exec196 197name:            v_omod_mul_clamp_already_set_f32198tracksRegLiveness: true199registers:200  - { id: 0, class: sgpr_64 }201  - { id: 1, class: sreg_32_xm0 }202  - { id: 2, class: sgpr_32 }203  - { id: 3, class: vgpr_32 }204  - { id: 4, class: sreg_64_xexec }205  - { id: 5, class: sreg_64_xexec }206  - { id: 6, class: sreg_32 }207  - { id: 7, class: sreg_32 }208  - { id: 8, class: sreg_32_xm0 }209  - { id: 9, class: sreg_64 }210  - { id: 10, class: sreg_32_xm0 }211  - { id: 11, class: sreg_32_xm0 }212  - { id: 12, class: sgpr_64 }213  - { id: 13, class: sgpr_128 }214  - { id: 14, class: sreg_32_xm0 }215  - { id: 15, class: sreg_64 }216  - { id: 16, class: sgpr_128 }217  - { id: 17, class: vgpr_32 }218  - { id: 18, class: vreg_64 }219  - { id: 19, class: vgpr_32 }220  - { id: 20, class: vgpr_32 }221  - { id: 21, class: vgpr_32 }222  - { id: 22, class: vgpr_32 }223  - { id: 23, class: vreg_64 }224  - { id: 24, class: vgpr_32 }225  - { id: 25, class: vreg_64 }226  - { id: 26, class: vreg_64 }227liveins:228  - { reg: '$sgpr0_sgpr1', virtual-reg: '%0' }229  - { reg: '$vgpr0', virtual-reg: '%3' }230body:             |231  bb.0:232    liveins: $sgpr0_sgpr1, $vgpr0233 234    %3 = COPY $vgpr0235    %0 = COPY $sgpr0_sgpr1236    %4 = S_LOAD_DWORDX2_IMM %0, 9, 0 :: (non-temporal dereferenceable invariant load (s64) from `ptr addrspace(4) poison`)237    %5 = S_LOAD_DWORDX2_IMM %0, 11, 0 :: (non-temporal dereferenceable invariant load (s64) from `ptr addrspace(4) poison`)238    %24 = V_ASHRREV_I32_e32 31, %3, implicit $exec239    %25 = REG_SEQUENCE %3, 1, %24, 2240    %10 = S_MOV_B32 61440241    %11 = S_MOV_B32 0242    %12 = REG_SEQUENCE killed %11, 1, killed %10, 2243    %13 = REG_SEQUENCE killed %5, 17, %12, 18244    %14 = S_MOV_B32 2245    %26 = V_LSHL_B64_e64 killed %25, 2, implicit $exec246    %16 = REG_SEQUENCE killed %4, 17, %12, 18247    %18 = COPY %26248    %17 = BUFFER_LOAD_DWORD_ADDR64 %26, killed %13, 0, 0, 0, 0, implicit $exec249    %20 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit $mode, implicit $exec250    %21 = V_MUL_F32_e64 0, killed %20, 0, 1056964608, 1, 0, implicit $mode, implicit $exec251    BUFFER_STORE_DWORD_ADDR64 killed %21, %26, killed %16, 0, 0, 0, 0, implicit $exec252    S_ENDPGM 0253 254...255 256 257 258 259 260 261 262 263 264 265 266 267 268---269# Don't fold a mul that looks like an omod if itself has omod set270 271# GCN-LABEL: name: v_omod_add_omod_already_set_f32272# GCN: %20:vgpr_32 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit $mode, implicit $exec273# GCN-NEXT: %21:vgpr_32 = V_ADD_F32_e64 0, killed %20, 0, killed %20, 0, 3, implicit $mode, implicit $exec274name:            v_omod_add_omod_already_set_f32275tracksRegLiveness: true276registers:277  - { id: 0, class: sgpr_64 }278  - { id: 1, class: sreg_32_xm0 }279  - { id: 2, class: sgpr_32 }280  - { id: 3, class: vgpr_32 }281  - { id: 4, class: sreg_64_xexec }282  - { id: 5, class: sreg_64_xexec }283  - { id: 6, class: sreg_32 }284  - { id: 7, class: sreg_32 }285  - { id: 8, class: sreg_32_xm0 }286  - { id: 9, class: sreg_64 }287  - { id: 10, class: sreg_32_xm0 }288  - { id: 11, class: sreg_32_xm0 }289  - { id: 12, class: sgpr_64 }290  - { id: 13, class: sgpr_128 }291  - { id: 14, class: sreg_32_xm0 }292  - { id: 15, class: sreg_64 }293  - { id: 16, class: sgpr_128 }294  - { id: 17, class: vgpr_32 }295  - { id: 18, class: vreg_64 }296  - { id: 19, class: vgpr_32 }297  - { id: 20, class: vgpr_32 }298  - { id: 21, class: vgpr_32 }299  - { id: 22, class: vgpr_32 }300  - { id: 23, class: vreg_64 }301  - { id: 24, class: vgpr_32 }302  - { id: 25, class: vreg_64 }303  - { id: 26, class: vreg_64 }304liveins:305  - { reg: '$sgpr0_sgpr1', virtual-reg: '%0' }306  - { reg: '$vgpr0', virtual-reg: '%3' }307body:             |308  bb.0:309    liveins: $sgpr0_sgpr1, $vgpr0310 311    %3 = COPY $vgpr0312    %0 = COPY $sgpr0_sgpr1313    %4 = S_LOAD_DWORDX2_IMM %0, 9, 0 :: (non-temporal dereferenceable invariant load (s64) from `ptr addrspace(4) poison`)314    %5 = S_LOAD_DWORDX2_IMM %0, 11, 0 :: (non-temporal dereferenceable invariant load (s64) from `ptr addrspace(4) poison`)315    %24 = V_ASHRREV_I32_e32 31, %3, implicit $exec316    %25 = REG_SEQUENCE %3, 1, %24, 2317    %10 = S_MOV_B32 61440318    %11 = S_MOV_B32 0319    %12 = REG_SEQUENCE killed %11, 1, killed %10, 2320    %13 = REG_SEQUENCE killed %5, 17, %12, 18321    %14 = S_MOV_B32 2322    %26 = V_LSHL_B64_e64 killed %25, 2, implicit $exec323    %16 = REG_SEQUENCE killed %4, 17, %12, 18324    %18 = COPY %26325    %17 = BUFFER_LOAD_DWORD_ADDR64 %26, killed %13, 0, 0, 0, 0, implicit $exec326    %20 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit $mode, implicit $exec327    %21 = V_ADD_F32_e64 0, killed %20, 0, killed %20, 0, 3, implicit $mode, implicit $exec328    BUFFER_STORE_DWORD_ADDR64 killed %21, %26, killed %16, 0, 0, 0, 0, implicit $exec329    S_ENDPGM 0330 331...332---333# Don't fold a mul that looks like an omod if itself has clamp set334# This might be OK, but would require folding the clamp at the same time.335# GCN-LABEL: name: v_omod_add_clamp_already_set_f32336# GCN: %20:vgpr_32 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit $mode, implicit $exec337# GCN-NEXT: %21:vgpr_32 = V_ADD_F32_e64 0, killed %20, 0, killed %20, 1, 0, implicit $mode, implicit $exec338 339name:            v_omod_add_clamp_already_set_f32340tracksRegLiveness: true341registers:342  - { id: 0, class: sgpr_64 }343  - { id: 1, class: sreg_32_xm0 }344  - { id: 2, class: sgpr_32 }345  - { id: 3, class: vgpr_32 }346  - { id: 4, class: sreg_64_xexec }347  - { id: 5, class: sreg_64_xexec }348  - { id: 6, class: sreg_32 }349  - { id: 7, class: sreg_32 }350  - { id: 8, class: sreg_32_xm0 }351  - { id: 9, class: sreg_64 }352  - { id: 10, class: sreg_32_xm0 }353  - { id: 11, class: sreg_32_xm0 }354  - { id: 12, class: sgpr_64 }355  - { id: 13, class: sgpr_128 }356  - { id: 14, class: sreg_32_xm0 }357  - { id: 15, class: sreg_64 }358  - { id: 16, class: sgpr_128 }359  - { id: 17, class: vgpr_32 }360  - { id: 18, class: vreg_64 }361  - { id: 19, class: vgpr_32 }362  - { id: 20, class: vgpr_32 }363  - { id: 21, class: vgpr_32 }364  - { id: 22, class: vgpr_32 }365  - { id: 23, class: vreg_64 }366  - { id: 24, class: vgpr_32 }367  - { id: 25, class: vreg_64 }368  - { id: 26, class: vreg_64 }369liveins:370  - { reg: '$sgpr0_sgpr1', virtual-reg: '%0' }371  - { reg: '$vgpr0', virtual-reg: '%3' }372body:             |373  bb.0:374    liveins: $sgpr0_sgpr1, $vgpr0375 376    %3 = COPY $vgpr0377    %0 = COPY $sgpr0_sgpr1378    %4 = S_LOAD_DWORDX2_IMM %0, 9, 0 :: (non-temporal dereferenceable invariant load (s64) from `ptr addrspace(4) poison`)379    %5 = S_LOAD_DWORDX2_IMM %0, 11, 0 :: (non-temporal dereferenceable invariant load (s64) from `ptr addrspace(4) poison`)380    %24 = V_ASHRREV_I32_e32 31, %3, implicit $exec381    %25 = REG_SEQUENCE %3, 1, %24, 2382    %10 = S_MOV_B32 61440383    %11 = S_MOV_B32 0384    %12 = REG_SEQUENCE killed %11, 1, killed %10, 2385    %13 = REG_SEQUENCE killed %5, 17, %12, 18386    %14 = S_MOV_B32 2387    %26 = V_LSHL_B64_e64 killed %25, 2, implicit $exec388    %16 = REG_SEQUENCE killed %4, 17, %12, 18389    %18 = COPY %26390    %17 = BUFFER_LOAD_DWORD_ADDR64 %26, killed %13, 0, 0, 0, 0, implicit $exec391    %20 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit $mode, implicit $exec392    %21 = V_ADD_F32_e64 0, killed %20, 0, killed %20, 1, 0, implicit $mode, implicit $exec393    BUFFER_STORE_DWORD_ADDR64 killed %21, %26, killed %16, 0, 0, 0, 0, implicit $exec394    S_ENDPGM 0395 396...397---398 399# Pass used to crash with immediate second operand of max400name:            v_max_reg_imm_f32401tracksRegLiveness: true402registers:403  - { id: 0, class: vgpr_32 }404  - { id: 1, class: vgpr_32 }405body:             |406  bb.0:407    liveins: $vgpr0408 409    %0 = COPY $vgpr0410    %1 = V_MAX_F32_e64 0, killed %0, 0, 1056964608, 1, 0, implicit $mode, implicit $exec411 412...413 414---415# GCN-LABEL: name: clamp_missing_nofpexcept_0416# GCN: %2:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec417# GCN-NEXT: %3:vgpr_32 = V_MAX_F32_e64 0, killed %2, 0, killed %2, 1, 0, implicit $mode, implicit $exec418name:            clamp_missing_nofpexcept_0419tracksRegLiveness: true420machineFunctionInfo:421  mode:422   ieee: false423   fp32-input-denormals: false424   fp32-output-denormals: false425 426body:             |427  bb.0:428    liveins: $vgpr0, $vgpr1429 430    %0:vgpr_32 = COPY $vgpr0431    %1:vgpr_32 = COPY $vgpr1432    %2:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec433    %3:vgpr_32 = V_MAX_F32_e64 0, killed %2, 0, killed %2, 1, 0, implicit $mode, implicit $exec434...435 436---437# GCN-LABEL: name: clamp_missing_nofpexcept_1438# GCN: %2:vgpr_32 = V_ADD_F32_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec439# GCN-NEXT: %3:vgpr_32 = nofpexcept V_MAX_F32_e64 0, killed %2, 0, killed %2, 1, 0, implicit $mode, implicit $exec440name:            clamp_missing_nofpexcept_1441tracksRegLiveness: true442machineFunctionInfo:443  mode:444   ieee: false445   fp32-input-denormals: false446   fp32-output-denormals: false447 448body:             |449  bb.0:450    liveins: $vgpr0, $vgpr1451 452    %0:vgpr_32 = COPY $vgpr0453    %1:vgpr_32 = COPY $vgpr1454    %2:vgpr_32 = V_ADD_F32_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec455    %3:vgpr_32 = nofpexcept V_MAX_F32_e64 0, killed %2, 0, killed %2, 1, 0, implicit $mode, implicit $exec456...457 458---459# GCN-LABEL: name: omod_missing_nofpexcept_0460# GCN: %2:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec461# GCN-NEXT: %3:vgpr_32 = nsz V_MUL_F32_e64 0, killed %2, 0, 1056964608, 0, 0, implicit $mode, implicit $exec462name:            omod_missing_nofpexcept_0463tracksRegLiveness: true464machineFunctionInfo:465  mode:466   ieee: false467   fp32-input-denormals: false468   fp32-output-denormals: false469body:             |470  bb.0:471    liveins: $vgpr0, $vgpr1472 473    %0:vgpr_32 = COPY $vgpr0474    %1:vgpr_32 = COPY $vgpr1475    %2:vgpr_32 = nofpexcept V_ADD_F32_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec476    %3:vgpr_32 = nsz V_MUL_F32_e64 0, killed %2, 0, 1056964608, 0, 0, implicit $mode, implicit $exec477 478...479 480---481# GCN-LABEL: name: omod_missing_nofpexcept_1482# GCN: %2:vgpr_32 = V_ADD_F32_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec483# GCN-NEXT: %3:vgpr_32 = nsz nofpexcept V_MUL_F32_e64 0, killed %2, 0, 1056964608, 0, 0, implicit $mode, implicit $exec484name:            omod_missing_nofpexcept_1485tracksRegLiveness: true486machineFunctionInfo:487  mode:488   ieee: false489   fp32-input-denormals: false490   fp32-output-denormals: false491body:             |492  bb.0:493    liveins: $vgpr0, $vgpr1494 495    %0:vgpr_32 = COPY $vgpr0496    %1:vgpr_32 = COPY $vgpr1497    %2:vgpr_32 = V_ADD_F32_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec498    %3:vgpr_32 = nsz nofpexcept V_MUL_F32_e64 0, killed %2, 0, 1056964608, 0, 0, implicit $mode, implicit $exec499 500...501