Match SelectionDAG's behavior of adding nofpexcept to out instructions that may raise fp exceptions that are selected from instructions that do not.
106 lines
2.7 KiB
YAML
106 lines
2.7 KiB
YAML
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
|
|
# RUN: llc -march=amdgcn -mcpu=bonaire -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN %s
|
|
# RUN: llc -march=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN %s
|
|
|
|
---
|
|
name: frint_s32_vv
|
|
legalized: true
|
|
regBankSelected: true
|
|
tracksRegLiveness: true
|
|
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0
|
|
|
|
; GCN-LABEL: name: frint_s32_vv
|
|
; GCN: liveins: $vgpr0
|
|
; GCN: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
|
|
; GCN: %1:vgpr_32 = nofpexcept V_RNDNE_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
|
|
; GCN: $vgpr0 = COPY %1
|
|
%0:vgpr(s32) = COPY $vgpr0
|
|
%1:vgpr(s32) = G_FRINT %0
|
|
$vgpr0 = COPY %1
|
|
...
|
|
|
|
---
|
|
name: frint_s32_vs
|
|
legalized: true
|
|
regBankSelected: true
|
|
tracksRegLiveness: true
|
|
|
|
body: |
|
|
bb.0:
|
|
liveins: $sgpr0
|
|
|
|
; GCN-LABEL: name: frint_s32_vs
|
|
; GCN: liveins: $sgpr0
|
|
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
|
|
; GCN: %1:vgpr_32 = nofpexcept V_RNDNE_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
|
|
; GCN: $vgpr0 = COPY %1
|
|
%0:sgpr(s32) = COPY $sgpr0
|
|
%1:vgpr(s32) = G_FRINT %0
|
|
$vgpr0 = COPY %1
|
|
...
|
|
|
|
---
|
|
name: frint_fneg_s32_vv
|
|
legalized: true
|
|
regBankSelected: true
|
|
tracksRegLiveness: true
|
|
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0
|
|
|
|
; GCN-LABEL: name: frint_fneg_s32_vv
|
|
; GCN: liveins: $vgpr0
|
|
; GCN: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
|
|
; GCN: %2:vgpr_32 = nofpexcept V_RNDNE_F32_e64 1, [[COPY]], 0, 0, implicit $mode, implicit $exec
|
|
; GCN: $vgpr0 = COPY %2
|
|
%0:vgpr(s32) = COPY $vgpr0
|
|
%1:vgpr(s32) = G_FNEG %0
|
|
%2:vgpr(s32) = G_FRINT %1
|
|
$vgpr0 = COPY %2
|
|
...
|
|
|
|
---
|
|
name: frint_s64_vv
|
|
legalized: true
|
|
regBankSelected: true
|
|
tracksRegLiveness: true
|
|
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0_vgpr1
|
|
|
|
; GCN-LABEL: name: frint_s64_vv
|
|
; GCN: liveins: $vgpr0_vgpr1
|
|
; GCN: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
|
|
; GCN: %1:vreg_64 = nofpexcept V_RNDNE_F64_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
|
|
; GCN: $vgpr0_vgpr1 = COPY %1
|
|
%0:vgpr(s64) = COPY $vgpr0_vgpr1
|
|
%1:vgpr(s64) = G_FRINT %0
|
|
$vgpr0_vgpr1 = COPY %1
|
|
...
|
|
|
|
---
|
|
name: frint_s64_fneg_vv
|
|
legalized: true
|
|
regBankSelected: true
|
|
tracksRegLiveness: true
|
|
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0_vgpr1
|
|
|
|
; GCN-LABEL: name: frint_s64_fneg_vv
|
|
; GCN: liveins: $vgpr0_vgpr1
|
|
; GCN: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
|
|
; GCN: %2:vreg_64 = nofpexcept V_RNDNE_F64_e64 1, [[COPY]], 0, 0, implicit $mode, implicit $exec
|
|
; GCN: $vgpr0_vgpr1 = COPY %2
|
|
%0:vgpr(s64) = COPY $vgpr0_vgpr1
|
|
%1:vgpr(s64) = G_FNEG %0
|
|
%2:vgpr(s64) = G_FRINT %1
|
|
$vgpr0_vgpr1 = COPY %2
|
|
...
|