# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -march=amdgcn -mcpu=gfx900 -mattr=+fp32-denormals,+fp64-fp16-denormals -run-pass=instruction-select -global-isel-abort=2 -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX9-DENORM %s
# RUN: llc -march=amdgcn -mcpu=gfx900 -mattr=-fp32-denormals,-fp64-fp16-denormals -run-pass=instruction-select -global-isel-abort=2 -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX9-FLUSH %s

---

name:            fcanonicalize_f16
legalized:       true
regBankSelected: true

body: |
  bb.0:
    liveins: $vgpr0
    ; GFX9-DENORM-LABEL: name: fcanonicalize_f16
    ; GFX9-DENORM: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
    ; GFX9-DENORM: [[V_MAX_F16_e64_:%[0-9]+]]:vgpr_32 = V_MAX_F16_e64 0, [[COPY]], 0, [[COPY]], 0, 0, implicit $exec
    ; GFX9-DENORM: S_ENDPGM 0, implicit [[V_MAX_F16_e64_]]
    ; GFX9-FLUSH-LABEL: name: fcanonicalize_f16
    ; GFX9-FLUSH: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
    ; GFX9-FLUSH: [[V_MUL_F16_e64_:%[0-9]+]]:vgpr_32 = V_MUL_F16_e64 0, 15360, 0, [[COPY]], 0, 0, implicit $exec
    ; GFX9-FLUSH: S_ENDPGM 0, implicit [[V_MUL_F16_e64_]]
    %0:vgpr(s32) = COPY $vgpr0
    %1:vgpr(s16) = G_TRUNC %0
    %2:vgpr(s16) = G_FCANONICALIZE %1
    S_ENDPGM 0, implicit %2
...

---

name:            fcanonicalize_f32
legalized:       true
regBankSelected: true

body: |
  bb.0:
    liveins: $vgpr0
    ; GFX9-DENORM-LABEL: name: fcanonicalize_f32
    ; GFX9-DENORM: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
    ; GFX9-DENORM: [[V_MAX_F32_e64_:%[0-9]+]]:vgpr_32 = V_MAX_F32_e64 0, [[COPY]], 0, [[COPY]], 0, 0, implicit $exec
    ; GFX9-DENORM: S_ENDPGM 0, implicit [[V_MAX_F32_e64_]]
    ; GFX9-FLUSH-LABEL: name: fcanonicalize_f32
    ; GFX9-FLUSH: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
    ; GFX9-FLUSH: [[V_MUL_F32_e64_:%[0-9]+]]:vgpr_32 = V_MUL_F32_e64 0, 1065353216, 0, [[COPY]], 0, 0, implicit $exec
    ; GFX9-FLUSH: S_ENDPGM 0, implicit [[V_MUL_F32_e64_]]
    %0:vgpr(s32) = COPY $vgpr0
    %1:vgpr(s32) = G_FCANONICALIZE %0
    S_ENDPGM 0, implicit %1
...

---

name:            fcanonicalize_v2f16
legalized:       true
regBankSelected: true

body: |
  bb.0:
    liveins: $vgpr0
    ; GFX9-DENORM-LABEL: name: fcanonicalize_v2f16
    ; GFX9-DENORM: [[COPY:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr0
    ; GFX9-DENORM: [[FCANONICALIZE:%[0-9]+]]:vgpr(<2 x s16>) = G_FCANONICALIZE [[COPY]]
    ; GFX9-DENORM: S_ENDPGM 0, implicit [[FCANONICALIZE]](<2 x s16>)
    ; GFX9-FLUSH-LABEL: name: fcanonicalize_v2f16
    ; GFX9-FLUSH: [[COPY:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr0
    ; GFX9-FLUSH: [[FCANONICALIZE:%[0-9]+]]:vgpr(<2 x s16>) = G_FCANONICALIZE [[COPY]]
    ; GFX9-FLUSH: S_ENDPGM 0, implicit [[FCANONICALIZE]](<2 x s16>)
    %0:vgpr(<2 x s16>) = COPY $vgpr0
    %1:vgpr(<2 x s16>) = G_FCANONICALIZE %0
    S_ENDPGM 0, implicit %1
...

---

name:            fcanonicalize_f64
legalized:       true
regBankSelected: true

body: |
  bb.0:
    liveins: $vgpr0_vgpr1
    ; GFX9-DENORM-LABEL: name: fcanonicalize_f64
    ; GFX9-DENORM: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
    ; GFX9-DENORM: [[V_MAX_F64_:%[0-9]+]]:vreg_64 = V_MAX_F64 0, [[COPY]], 0, [[COPY]], 0, 0, implicit $exec
    ; GFX9-DENORM: S_ENDPGM 0, implicit [[V_MAX_F64_]]
    ; GFX9-FLUSH-LABEL: name: fcanonicalize_f64
    ; GFX9-FLUSH: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
    ; GFX9-FLUSH: [[V_MUL_F64_:%[0-9]+]]:vreg_64 = V_MUL_F64 0, 4607182418800017408, 0, [[COPY]], 0, 0, implicit $exec
    ; GFX9-FLUSH: S_ENDPGM 0, implicit [[V_MUL_F64_]]
    %0:vgpr(s64) = COPY $vgpr0_vgpr1
    %1:vgpr(s64) = G_FCANONICALIZE %0
    S_ENDPGM 0, implicit %1
...

---

name:            fcanonicalize_fabs_f32
legalized:       true
regBankSelected: true

body: |
  bb.0:
    liveins: $vgpr0
    ; GFX9-DENORM-LABEL: name: fcanonicalize_fabs_f32
    ; GFX9-DENORM: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
    ; GFX9-DENORM: [[V_MAX_F32_e64_:%[0-9]+]]:vgpr_32 = V_MAX_F32_e64 2, [[COPY]], 2, [[COPY]], 0, 0, implicit $exec
    ; GFX9-DENORM: S_ENDPGM 0, implicit [[V_MAX_F32_e64_]]
    ; GFX9-FLUSH-LABEL: name: fcanonicalize_fabs_f32
    ; GFX9-FLUSH: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
    ; GFX9-FLUSH: [[V_MUL_F32_e64_:%[0-9]+]]:vgpr_32 = V_MUL_F32_e64 0, 1065353216, 2, [[COPY]], 0, 0, implicit $exec
    ; GFX9-FLUSH: S_ENDPGM 0, implicit [[V_MUL_F32_e64_]]
    %0:vgpr(s32) = COPY $vgpr0
    %1:vgpr(s32) = G_FABS %0
    %2:vgpr(s32) = G_FCANONICALIZE %1
    S_ENDPGM 0, implicit %2
...

---

name:            fcanonicalize_fneg_f32
legalized:       true
regBankSelected: true

body: |
  bb.0:
    liveins: $vgpr0
    ; GFX9-DENORM-LABEL: name: fcanonicalize_fneg_f32
    ; GFX9-DENORM: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
    ; GFX9-DENORM: [[V_MAX_F32_e64_:%[0-9]+]]:vgpr_32 = V_MAX_F32_e64 1, [[COPY]], 1, [[COPY]], 0, 0, implicit $exec
    ; GFX9-DENORM: S_ENDPGM 0, implicit [[V_MAX_F32_e64_]]
    ; GFX9-FLUSH-LABEL: name: fcanonicalize_fneg_f32
    ; GFX9-FLUSH: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
    ; GFX9-FLUSH: [[V_MUL_F32_e64_:%[0-9]+]]:vgpr_32 = V_MUL_F32_e64 0, 3212836864, 0, [[COPY]], 0, 0, implicit $exec
    ; GFX9-FLUSH: S_ENDPGM 0, implicit [[V_MUL_F32_e64_]]
    %0:vgpr(s32) = COPY $vgpr0
    %1:vgpr(s32) = G_FNEG %0
    %2:vgpr(s32) = G_FCANONICALIZE %1
    S_ENDPGM 0, implicit %2
...

---

name:            fcanonicalize_fneg_fabs_f32
legalized:       true
regBankSelected: true

body: |
  bb.0:
    liveins: $vgpr0
    ; GFX9-DENORM-LABEL: name: fcanonicalize_fneg_fabs_f32
    ; GFX9-DENORM: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
    ; GFX9-DENORM: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 2147483648
    ; GFX9-DENORM: [[V_XOR_B32_e32_:%[0-9]+]]:vgpr_32 = V_XOR_B32_e32 [[S_MOV_B32_]], [[COPY]], implicit $exec
    ; GFX9-DENORM: [[V_MAX_F32_e64_:%[0-9]+]]:vgpr_32 = V_MAX_F32_e64 2, [[V_XOR_B32_e32_]], 2, [[V_XOR_B32_e32_]], 0, 0, implicit $exec
    ; GFX9-DENORM: S_ENDPGM 0, implicit [[V_MAX_F32_e64_]]
    ; GFX9-FLUSH-LABEL: name: fcanonicalize_fneg_fabs_f32
    ; GFX9-FLUSH: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
    ; GFX9-FLUSH: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 2147483648
    ; GFX9-FLUSH: [[V_XOR_B32_e32_:%[0-9]+]]:vgpr_32 = V_XOR_B32_e32 [[S_MOV_B32_]], [[COPY]], implicit $exec
    ; GFX9-FLUSH: [[V_MUL_F32_e64_:%[0-9]+]]:vgpr_32 = V_MUL_F32_e64 0, 1065353216, 2, [[V_XOR_B32_e32_]], 0, 0, implicit $exec
    ; GFX9-FLUSH: S_ENDPGM 0, implicit [[V_MUL_F32_e64_]]
    %0:vgpr(s32) = COPY $vgpr0
    %1:vgpr(s32) = G_FNEG %0
    %2:vgpr(s32) = G_FABS %1
    %3:vgpr(s32) = G_FCANONICALIZE %2
    S_ENDPGM 0, implicit %3
...
