; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck -enable-var-scope -check-prefixes=GFX9,GFX9-SDAG %s
; RUN: llc -global-isel=1 -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck -enable-var-scope -check-prefixes=GFX9,GFX9-GISEL %s
; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1200 -mattr=+real-true16 < %s | FileCheck -enable-var-scope -check-prefixes=GFX12,GFX12-SDAG,GFX12-SDAG-TRUE16 %s
; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1200 -mattr=-real-true16 < %s | FileCheck -enable-var-scope -check-prefixes=GFX12,GFX12-SDAG,GFX12-SDAG-FAKE16 %s
; RUN: llc -global-isel=1 -mtriple=amdgcn -mcpu=gfx1200 -mattr=+real-true16 < %s | FileCheck -enable-var-scope -check-prefixes=GFX12,GFX12-GISEL,GFX12-GISEL-TRUE16 %s
; RUN: llc -global-isel=1 -mtriple=amdgcn -mcpu=gfx1200 -mattr=-real-true16 < %s | FileCheck -enable-var-scope -check-prefixes=GFX12,GFX12-GISEL,GFX12-GISEL-FAKE16 %s

define amdgpu_ps float @test_fmaximum_f32_vv(float %a, float %b) {
; GFX9-LABEL: test_fmaximum_f32_vv:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_max_f32_e32 v2, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v3, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc
; GFX9-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_f32_vv:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f32 v0, v0, v1
; GFX12-NEXT:    ; return to shader part epilog
  %val = call float @llvm.maximum.f32(float %a, float %b)
  ret float %val
}

define amdgpu_ps float @test_fmaximum_f32_ss(float inreg %a, float inreg %b) {
; GFX9-LABEL: test_fmaximum_f32_ss:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_mov_b32_e32 v0, s1
; GFX9-NEXT:    v_max_f32_e32 v1, s0, v0
; GFX9-NEXT:    v_mov_b32_e32 v2, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, s0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v2, v1, vcc
; GFX9-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_f32_ss:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_maximum_f32 s0, s0, s1
; GFX12-NEXT:    s_delay_alu instid0(SALU_CYCLE_3)
; GFX12-NEXT:    v_mov_b32_e32 v0, s0
; GFX12-NEXT:    ; return to shader part epilog
  %val = call float @llvm.maximum.f32(float %a, float %b)
  ret float %val
}

define amdgpu_ps float @test_fmaximum_f32_vs(float %a, float inreg %b) {
; GFX9-LABEL: test_fmaximum_f32_vs:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_max_f32_e32 v1, s0, v0
; GFX9-NEXT:    v_mov_b32_e32 v2, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, s0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v2, v1, vcc
; GFX9-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_f32_vs:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f32 v0, v0, s0
; GFX12-NEXT:    ; return to shader part epilog
  %val = call float @llvm.maximum.f32(float %a, float %b)
  ret float %val
}

define amdgpu_ps float @test_fmaximum_nnan_f32(float %a, float %b) {
; GFX9-LABEL: test_fmaximum_nnan_f32:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_max_f32_e32 v0, v0, v1
; GFX9-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_nnan_f32:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f32 v0, v0, v1
; GFX12-NEXT:    ; return to shader part epilog
  %val = call nnan float @llvm.maximum.f32(float %a, float %b)
  ret float %val
}

define amdgpu_ps float @test_fmaximum_nsz_f32(float %a, float %b) {
; GFX9-LABEL: test_fmaximum_nsz_f32:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_max_f32_e32 v2, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v3, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc
; GFX9-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_nsz_f32:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f32 v0, v0, v1
; GFX12-NEXT:    ; return to shader part epilog
  %val = call nsz float @llvm.maximum.f32(float %a, float %b)
  ret float %val
}

define amdgpu_ps float @test_fmaximum_signed_zero_f32() {
; GFX9-LABEL: test_fmaximum_signed_zero_f32:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_mov_b32_e32 v0, 0
; GFX9-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_signed_zero_f32:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_mov_b32_e32 v0, 0
; GFX12-NEXT:    ; return to shader part epilog
  %val = call float @llvm.maximum.f32(float -0.0, float 0.0)
  ret float %val
}

define amdgpu_ps <2 x float> @test_fmaximum_v2f32(<2 x float> %a, <2 x float> %b) {
; GFX9-LABEL: test_fmaximum_v2f32:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_max_f32_e32 v4, v0, v2
; GFX9-NEXT:    v_mov_b32_e32 v5, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v5, v4, vcc
; GFX9-NEXT:    v_max_f32_e32 v2, v1, v3
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v5, v2, vcc
; GFX9-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_v2f32:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f32 v0, v0, v2
; GFX12-NEXT:    v_maximum_f32 v1, v1, v3
; GFX12-NEXT:    ; return to shader part epilog
  %val = call <2 x float> @llvm.maximum.v2f32(<2 x float> %a, <2 x float> %b)
  ret <2 x float> %val
}

define amdgpu_ps <2 x float> @test_fmaximum_v2f32_ss(<2 x float> inreg %a, <2 x float> inreg %b) {
; GFX9-LABEL: test_fmaximum_v2f32_ss:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_mov_b32_e32 v0, s2
; GFX9-NEXT:    v_max_f32_e32 v1, s0, v0
; GFX9-NEXT:    v_mov_b32_e32 v2, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, s0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v2, v1, vcc
; GFX9-NEXT:    v_mov_b32_e32 v1, s3
; GFX9-NEXT:    v_max_f32_e32 v3, s1, v1
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, s1, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v2, v3, vcc
; GFX9-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_v2f32_ss:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_maximum_f32 s0, s0, s2
; GFX12-NEXT:    s_maximum_f32 s1, s1, s3
; GFX12-NEXT:    s_delay_alu instid0(SALU_CYCLE_3)
; GFX12-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX12-NEXT:    ; return to shader part epilog
  %val = call <2 x float> @llvm.maximum.v2f32(<2 x float> %a, <2 x float> %b)
  ret <2 x float> %val
}

define amdgpu_ps <3 x float> @test_fmaximum_v3f32(<3 x float> %a, <3 x float> %b) {
; GFX9-LABEL: test_fmaximum_v3f32:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_max_f32_e32 v6, v0, v3
; GFX9-NEXT:    v_mov_b32_e32 v7, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v6, vcc
; GFX9-NEXT:    v_max_f32_e32 v3, v1, v4
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v4
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v3, v2, v5
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v2, v5
; GFX9-NEXT:    v_cndmask_b32_e32 v2, v7, v3, vcc
; GFX9-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_v3f32:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f32 v0, v0, v3
; GFX12-NEXT:    v_maximum_f32 v1, v1, v4
; GFX12-NEXT:    v_maximum_f32 v2, v2, v5
; GFX12-NEXT:    ; return to shader part epilog
  %val = call <3 x float> @llvm.maximum.v3f32(<3 x float> %a, <3 x float> %b)
  ret <3 x float> %val
}

define amdgpu_ps <4 x float> @test_fmaximum_v4f32(<4 x float> %a, <4 x float> %b) {
; GFX9-LABEL: test_fmaximum_v4f32:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_max_f32_e32 v8, v0, v4
; GFX9-NEXT:    v_mov_b32_e32 v9, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v4
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v9, v8, vcc
; GFX9-NEXT:    v_max_f32_e32 v4, v1, v5
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v5
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v9, v4, vcc
; GFX9-NEXT:    v_max_f32_e32 v4, v2, v6
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v2, v6
; GFX9-NEXT:    v_cndmask_b32_e32 v2, v9, v4, vcc
; GFX9-NEXT:    v_max_f32_e32 v4, v3, v7
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v3, v7
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v9, v4, vcc
; GFX9-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_v4f32:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f32 v0, v0, v4
; GFX12-NEXT:    v_maximum_f32 v1, v1, v5
; GFX12-NEXT:    v_maximum_f32 v2, v2, v6
; GFX12-NEXT:    v_maximum_f32 v3, v3, v7
; GFX12-NEXT:    ; return to shader part epilog
  %val = call <4 x float> @llvm.maximum.v4f32(<4 x float> %a, <4 x float> %b)
  ret <4 x float> %val
}

define amdgpu_ps <16 x float> @test_fmaximum_v16f32(<16 x float> %a, <16 x float> %b) {
; GFX9-LABEL: test_fmaximum_v16f32:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_max_f32_e32 v32, v1, v17
; GFX9-NEXT:    v_mov_b32_e32 v33, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v17
; GFX9-NEXT:    v_max_f32_e32 v1, v0, v16
; GFX9-NEXT:    v_cmp_o_f32_e64 s[12:13], v0, v16
; GFX9-NEXT:    v_max_f32_e32 v17, v2, v18
; GFX9-NEXT:    v_cmp_o_f32_e64 s[0:1], v2, v18
; GFX9-NEXT:    v_max_f32_e32 v18, v3, v19
; GFX9-NEXT:    v_cmp_o_f32_e64 s[2:3], v3, v19
; GFX9-NEXT:    v_max_f32_e32 v19, v4, v20
; GFX9-NEXT:    v_cmp_o_f32_e64 s[4:5], v4, v20
; GFX9-NEXT:    v_max_f32_e32 v20, v5, v21
; GFX9-NEXT:    v_cmp_o_f32_e64 s[6:7], v5, v21
; GFX9-NEXT:    v_max_f32_e32 v21, v6, v22
; GFX9-NEXT:    v_cmp_o_f32_e64 s[8:9], v6, v22
; GFX9-NEXT:    v_max_f32_e32 v22, v7, v23
; GFX9-NEXT:    v_cmp_o_f32_e64 s[10:11], v7, v23
; GFX9-NEXT:    v_max_f32_e32 v23, v8, v24
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v33, v1, s[12:13]
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v33, v32, vcc
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v8, v24
; GFX9-NEXT:    v_max_f32_e32 v34, v9, v25
; GFX9-NEXT:    v_cndmask_b32_e32 v8, v33, v23, vcc
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v9, v25
; GFX9-NEXT:    v_max_f32_e32 v35, v10, v26
; GFX9-NEXT:    v_cndmask_b32_e32 v9, v33, v34, vcc
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v10, v26
; GFX9-NEXT:    v_max_f32_e32 v36, v11, v27
; GFX9-NEXT:    v_cndmask_b32_e32 v10, v33, v35, vcc
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v11, v27
; GFX9-NEXT:    v_max_f32_e32 v37, v12, v28
; GFX9-NEXT:    v_cndmask_b32_e32 v11, v33, v36, vcc
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v12, v28
; GFX9-NEXT:    v_max_f32_e32 v16, v13, v29
; GFX9-NEXT:    v_cndmask_b32_e32 v12, v33, v37, vcc
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v13, v29
; GFX9-NEXT:    v_cndmask_b32_e32 v13, v33, v16, vcc
; GFX9-NEXT:    v_max_f32_e32 v16, v14, v30
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v14, v30
; GFX9-NEXT:    v_cndmask_b32_e32 v14, v33, v16, vcc
; GFX9-NEXT:    v_max_f32_e32 v16, v15, v31
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v15, v31
; GFX9-NEXT:    v_cndmask_b32_e64 v2, v33, v17, s[0:1]
; GFX9-NEXT:    v_cndmask_b32_e64 v3, v33, v18, s[2:3]
; GFX9-NEXT:    v_cndmask_b32_e64 v4, v33, v19, s[4:5]
; GFX9-NEXT:    v_cndmask_b32_e64 v5, v33, v20, s[6:7]
; GFX9-NEXT:    v_cndmask_b32_e64 v6, v33, v21, s[8:9]
; GFX9-NEXT:    v_cndmask_b32_e64 v7, v33, v22, s[10:11]
; GFX9-NEXT:    v_cndmask_b32_e32 v15, v33, v16, vcc
; GFX9-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_v16f32:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f32 v0, v0, v16
; GFX12-NEXT:    v_maximum_f32 v1, v1, v17
; GFX12-NEXT:    v_maximum_f32 v2, v2, v18
; GFX12-NEXT:    v_maximum_f32 v3, v3, v19
; GFX12-NEXT:    v_maximum_f32 v4, v4, v20
; GFX12-NEXT:    v_maximum_f32 v5, v5, v21
; GFX12-NEXT:    v_maximum_f32 v6, v6, v22
; GFX12-NEXT:    v_maximum_f32 v7, v7, v23
; GFX12-NEXT:    v_maximum_f32 v8, v8, v24
; GFX12-NEXT:    v_maximum_f32 v9, v9, v25
; GFX12-NEXT:    v_maximum_f32 v10, v10, v26
; GFX12-NEXT:    v_maximum_f32 v11, v11, v27
; GFX12-NEXT:    v_maximum_f32 v12, v12, v28
; GFX12-NEXT:    v_maximum_f32 v13, v13, v29
; GFX12-NEXT:    v_maximum_f32 v14, v14, v30
; GFX12-NEXT:    v_maximum_f32 v15, v15, v31
; GFX12-NEXT:    ; return to shader part epilog
  %val = call <16 x float> @llvm.maximum.v16f32(<16 x float> %a, <16 x float> %b)
  ret <16 x float> %val
}

define amdgpu_ps half @test_fmaximum_f16_vv(half %a, half %b) {
; GFX9-LABEL: test_fmaximum_f16_vv:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_max_f16_e32 v2, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v3, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc
; GFX9-NEXT:    ; return to shader part epilog
;
; GFX12-SDAG-TRUE16-LABEL: test_fmaximum_f16_vv:
; GFX12-SDAG-TRUE16:       ; %bb.0:
; GFX12-SDAG-TRUE16-NEXT:    v_maximum_f16 v0.l, v0.l, v1.l
; GFX12-SDAG-TRUE16-NEXT:    ; return to shader part epilog
;
; GFX12-SDAG-FAKE16-LABEL: test_fmaximum_f16_vv:
; GFX12-SDAG-FAKE16:       ; %bb.0:
; GFX12-SDAG-FAKE16-NEXT:    v_maximum_f16 v0, v0, v1
; GFX12-SDAG-FAKE16-NEXT:    ; return to shader part epilog
;
; GFX12-GISEL-TRUE16-LABEL: test_fmaximum_f16_vv:
; GFX12-GISEL-TRUE16:       ; %bb.0:
; GFX12-GISEL-TRUE16-NEXT:    v_maximum_f16 v0.l, v0.l, v1.l
; GFX12-GISEL-TRUE16-NEXT:    ; return to shader part epilog
;
; GFX12-GISEL-FAKE16-LABEL: test_fmaximum_f16_vv:
; GFX12-GISEL-FAKE16:       ; %bb.0:
; GFX12-GISEL-FAKE16-NEXT:    v_maximum_f16 v0, v0, v1
; GFX12-GISEL-FAKE16-NEXT:    ; return to shader part epilog
  %val = call half @llvm.maximum.f16(half %a, half %b)
  ret half %val
}

define amdgpu_ps half @test_fmaximum_f16_ss(half inreg %a, half inreg %b) {
; GFX9-LABEL: test_fmaximum_f16_ss:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_mov_b32_e32 v0, s1
; GFX9-NEXT:    v_max_f16_e32 v1, s0, v0
; GFX9-NEXT:    v_mov_b32_e32 v2, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, s0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v2, v1, vcc
; GFX9-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_f16_ss:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_maximum_f16 s0, s0, s1
; GFX12-NEXT:    s_delay_alu instid0(SALU_CYCLE_3)
; GFX12-NEXT:    v_mov_b32_e32 v0, s0
; GFX12-NEXT:    ; return to shader part epilog
  %val = call half @llvm.maximum.f16(half %a, half %b)
  ret half %val
}

define amdgpu_ps <2 x half> @test_fmaximum_v2f16_vv(<2 x half> %a, <2 x half> %b) {
; GFX9-SDAG-LABEL: test_fmaximum_v2f16_vv:
; GFX9-SDAG:       ; %bb.0:
; GFX9-SDAG-NEXT:    v_pk_max_f16 v2, v0, v1
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v3, 0x7e00
; GFX9-SDAG-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v4, v3, v2, vcc
; GFX9-SDAG-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v1 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-SDAG-NEXT:    v_cndmask_b32_sdwa v0, v3, v2, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
; GFX9-SDAG-NEXT:    s_mov_b32 s0, 0x5040100
; GFX9-SDAG-NEXT:    v_perm_b32 v0, v0, v4, s0
; GFX9-SDAG-NEXT:    ; return to shader part epilog
;
; GFX9-GISEL-LABEL: test_fmaximum_v2f16_vv:
; GFX9-GISEL:       ; %bb.0:
; GFX9-GISEL-NEXT:    v_pk_max_f16 v2, v0, v1
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v3, 0x7e00
; GFX9-GISEL-NEXT:    v_cmp_o_f16_e64 s[0:1], v0, v1
; GFX9-GISEL-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v1 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v0, v3, v2, s[0:1]
; GFX9-GISEL-NEXT:    v_cndmask_b32_sdwa v1, v3, v2, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
; GFX9-GISEL-NEXT:    v_and_b32_e32 v0, 0xffff, v0
; GFX9-GISEL-NEXT:    v_lshl_or_b32 v0, v1, 16, v0
; GFX9-GISEL-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_v2f16_vv:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v1
; GFX12-NEXT:    ; return to shader part epilog
  %val = call <2 x half> @llvm.maximum.v2f16(<2 x half> %a, <2 x half> %b)
  ret <2 x half> %val
}

define amdgpu_ps <2 x half> @test_fmaximum_v2f16_ss(<2 x half> inreg %a, <2 x half> inreg %b) {
; GFX9-SDAG-LABEL: test_fmaximum_v2f16_ss:
; GFX9-SDAG:       ; %bb.0:
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v0, s1
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v1, s1
; GFX9-SDAG-NEXT:    s_lshr_b32 s1, s1, 16
; GFX9-SDAG-NEXT:    v_pk_max_f16 v1, s0, v1
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v2, 0x7e00
; GFX9-SDAG-NEXT:    v_cmp_o_f16_e32 vcc, s0, v0
; GFX9-SDAG-NEXT:    s_lshr_b32 s0, s0, 16
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v3, s1
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v0, v2, v1, vcc
; GFX9-SDAG-NEXT:    v_cmp_o_f16_e32 vcc, s0, v3
; GFX9-SDAG-NEXT:    v_cndmask_b32_sdwa v1, v2, v1, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
; GFX9-SDAG-NEXT:    v_and_b32_e32 v0, 0xffff, v0
; GFX9-SDAG-NEXT:    v_lshl_or_b32 v0, v1, 16, v0
; GFX9-SDAG-NEXT:    ; return to shader part epilog
;
; GFX9-GISEL-LABEL: test_fmaximum_v2f16_ss:
; GFX9-GISEL:       ; %bb.0:
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v0, s1
; GFX9-GISEL-NEXT:    s_lshr_b32 s1, s1, 16
; GFX9-GISEL-NEXT:    s_lshr_b32 s2, s0, 16
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v2, s1
; GFX9-GISEL-NEXT:    v_pk_max_f16 v1, s0, v0
; GFX9-GISEL-NEXT:    v_cmp_o_f16_e32 vcc, s2, v2
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v2, 0x7e00
; GFX9-GISEL-NEXT:    v_cmp_o_f16_e64 s[0:1], s0, v0
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v0, v2, v1, s[0:1]
; GFX9-GISEL-NEXT:    v_cndmask_b32_sdwa v1, v2, v1, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
; GFX9-GISEL-NEXT:    v_and_b32_e32 v0, 0xffff, v0
; GFX9-GISEL-NEXT:    v_lshl_or_b32 v0, v1, 16, v0
; GFX9-GISEL-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_v2f16_ss:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_pk_maximum_f16 v0, s0, s1
; GFX12-NEXT:    ; return to shader part epilog
  %val = call <2 x half> @llvm.maximum.v2f16(<2 x half> %a, <2 x half> %b)
  ret <2 x half> %val
}

define amdgpu_ps <3 x half> @test_fmaximum_v3f16_vv(<3 x half> %a, <3 x half> %b) {
; GFX9-SDAG-LABEL: test_fmaximum_v3f16_vv:
; GFX9-SDAG:       ; %bb.0:
; GFX9-SDAG-NEXT:    v_pk_max_f16 v4, v1, v3
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v5, 0x7e00
; GFX9-SDAG-NEXT:    v_cmp_o_f16_e32 vcc, v1, v3
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v1, v5, v4, vcc
; GFX9-SDAG-NEXT:    v_pk_max_f16 v3, v0, v2
; GFX9-SDAG-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v4, v5, v3, vcc
; GFX9-SDAG-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v2 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-SDAG-NEXT:    v_cndmask_b32_sdwa v0, v5, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
; GFX9-SDAG-NEXT:    s_mov_b32 s0, 0x5040100
; GFX9-SDAG-NEXT:    v_perm_b32 v0, v0, v4, s0
; GFX9-SDAG-NEXT:    ; return to shader part epilog
;
; GFX9-GISEL-LABEL: test_fmaximum_v3f16_vv:
; GFX9-GISEL:       ; %bb.0:
; GFX9-GISEL-NEXT:    v_pk_max_f16 v4, v0, v2
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v5, 0x7e00
; GFX9-GISEL-NEXT:    v_cmp_o_f16_e64 s[0:1], v0, v2
; GFX9-GISEL-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v2 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v0, v5, v4, s[0:1]
; GFX9-GISEL-NEXT:    v_cndmask_b32_sdwa v2, v5, v4, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
; GFX9-GISEL-NEXT:    v_pk_max_f16 v4, v1, v3
; GFX9-GISEL-NEXT:    v_cmp_o_f16_e32 vcc, v1, v3
; GFX9-GISEL-NEXT:    v_and_b32_e32 v0, 0xffff, v0
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v1, v5, v4, vcc
; GFX9-GISEL-NEXT:    v_lshl_or_b32 v0, v2, 16, v0
; GFX9-GISEL-NEXT:    ; return to shader part epilog
;
; GFX12-SDAG-LABEL: test_fmaximum_v3f16_vv:
; GFX12-SDAG:       ; %bb.0:
; GFX12-SDAG-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-SDAG-NEXT:    v_pk_maximum_f16 v1, v1, v3
; GFX12-SDAG-NEXT:    ; return to shader part epilog
;
; GFX12-GISEL-TRUE16-LABEL: test_fmaximum_v3f16_vv:
; GFX12-GISEL-TRUE16:       ; %bb.0:
; GFX12-GISEL-TRUE16-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-GISEL-TRUE16-NEXT:    v_maximum_f16 v1.l, v1.l, v3.l
; GFX12-GISEL-TRUE16-NEXT:    ; return to shader part epilog
;
; GFX12-GISEL-FAKE16-LABEL: test_fmaximum_v3f16_vv:
; GFX12-GISEL-FAKE16:       ; %bb.0:
; GFX12-GISEL-FAKE16-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-GISEL-FAKE16-NEXT:    v_maximum_f16 v1, v1, v3
; GFX12-GISEL-FAKE16-NEXT:    ; return to shader part epilog
  %val = call <3 x half> @llvm.maximum.v3f16(<3 x half> %a, <3 x half> %b)
  ret <3 x half> %val
}

define amdgpu_ps <3 x half> @test_fmaximum_v3f16_ss(<3 x half> inreg %a, <3 x half> inreg %b) {
; GFX9-SDAG-LABEL: test_fmaximum_v3f16_ss:
; GFX9-SDAG:       ; %bb.0:
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v0, s3
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v1, s3
; GFX9-SDAG-NEXT:    v_pk_max_f16 v1, s1, v1
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v2, 0x7e00
; GFX9-SDAG-NEXT:    v_cmp_o_f16_e32 vcc, s1, v0
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v0, s2
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v3, s2
; GFX9-SDAG-NEXT:    s_lshr_b32 s1, s2, 16
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v1, v2, v1, vcc
; GFX9-SDAG-NEXT:    v_pk_max_f16 v3, s0, v3
; GFX9-SDAG-NEXT:    v_cmp_o_f16_e32 vcc, s0, v0
; GFX9-SDAG-NEXT:    s_lshr_b32 s0, s0, 16
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v4, s1
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v0, v2, v3, vcc
; GFX9-SDAG-NEXT:    v_cmp_o_f16_e32 vcc, s0, v4
; GFX9-SDAG-NEXT:    v_cndmask_b32_sdwa v2, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
; GFX9-SDAG-NEXT:    v_and_b32_e32 v0, 0xffff, v0
; GFX9-SDAG-NEXT:    v_lshl_or_b32 v0, v2, 16, v0
; GFX9-SDAG-NEXT:    ; return to shader part epilog
;
; GFX9-GISEL-LABEL: test_fmaximum_v3f16_ss:
; GFX9-GISEL:       ; %bb.0:
; GFX9-GISEL-NEXT:    s_lshr_b32 s5, s2, 16
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v0, s2
; GFX9-GISEL-NEXT:    s_lshr_b32 s4, s0, 16
; GFX9-GISEL-NEXT:    v_pk_max_f16 v1, s0, v0
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v2, s5
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-GISEL-NEXT:    v_cmp_o_f16_e32 vcc, s0, v0
; GFX9-GISEL-NEXT:    v_lshrrev_b32_e32 v3, 16, v1
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-GISEL-NEXT:    v_cmp_o_f16_e32 vcc, s4, v2
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v1, s3
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v2, v4, v3, vcc
; GFX9-GISEL-NEXT:    v_pk_max_f16 v3, s1, v1
; GFX9-GISEL-NEXT:    v_cmp_o_f16_e32 vcc, s1, v1
; GFX9-GISEL-NEXT:    v_and_b32_e32 v0, 0xffff, v0
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v1, v4, v3, vcc
; GFX9-GISEL-NEXT:    v_lshl_or_b32 v0, v2, 16, v0
; GFX9-GISEL-NEXT:    ; return to shader part epilog
;
; GFX12-SDAG-LABEL: test_fmaximum_v3f16_ss:
; GFX12-SDAG:       ; %bb.0:
; GFX12-SDAG-NEXT:    v_pk_maximum_f16 v0, s0, s2
; GFX12-SDAG-NEXT:    v_pk_maximum_f16 v1, s1, s3
; GFX12-SDAG-NEXT:    ; return to shader part epilog
;
; GFX12-GISEL-LABEL: test_fmaximum_v3f16_ss:
; GFX12-GISEL:       ; %bb.0:
; GFX12-GISEL-NEXT:    v_pk_maximum_f16 v0, s0, s2
; GFX12-GISEL-NEXT:    s_maximum_f16 s0, s1, s3
; GFX12-GISEL-NEXT:    s_wait_alu 0xfffe
; GFX12-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_2)
; GFX12-GISEL-NEXT:    v_mov_b32_e32 v1, s0
; GFX12-GISEL-NEXT:    ; return to shader part epilog
  %val = call <3 x half> @llvm.maximum.v3f16(<3 x half> %a, <3 x half> %b)
  ret <3 x half> %val
}

define amdgpu_ps <4 x half> @test_fmaximum_v4f16(<4 x half> %a, <4 x half> %b) {
; GFX9-SDAG-LABEL: test_fmaximum_v4f16:
; GFX9-SDAG:       ; %bb.0:
; GFX9-SDAG-NEXT:    v_pk_max_f16 v4, v1, v3
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v5, 0x7e00
; GFX9-SDAG-NEXT:    v_cmp_o_f16_e32 vcc, v1, v3
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v6, v5, v4, vcc
; GFX9-SDAG-NEXT:    v_cmp_o_f16_sdwa vcc, v1, v3 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-SDAG-NEXT:    v_cndmask_b32_sdwa v1, v5, v4, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
; GFX9-SDAG-NEXT:    v_pk_max_f16 v3, v0, v2
; GFX9-SDAG-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v4, v5, v3, vcc
; GFX9-SDAG-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v2 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-SDAG-NEXT:    v_cndmask_b32_sdwa v0, v5, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
; GFX9-SDAG-NEXT:    s_mov_b32 s0, 0x5040100
; GFX9-SDAG-NEXT:    v_perm_b32 v0, v0, v4, s0
; GFX9-SDAG-NEXT:    v_perm_b32 v1, v1, v6, s0
; GFX9-SDAG-NEXT:    ; return to shader part epilog
;
; GFX9-GISEL-LABEL: test_fmaximum_v4f16:
; GFX9-GISEL:       ; %bb.0:
; GFX9-GISEL-NEXT:    v_pk_max_f16 v4, v0, v2
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v6, 0x7e00
; GFX9-GISEL-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-GISEL-NEXT:    v_lshrrev_b32_e32 v5, 16, v4
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v4, v6, v4, vcc
; GFX9-GISEL-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v2 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v0, v6, v5, vcc
; GFX9-GISEL-NEXT:    v_and_b32_e32 v2, 0xffff, v4
; GFX9-GISEL-NEXT:    v_lshl_or_b32 v0, v0, 16, v2
; GFX9-GISEL-NEXT:    v_pk_max_f16 v2, v1, v3
; GFX9-GISEL-NEXT:    v_cmp_o_f16_e64 s[0:1], v1, v3
; GFX9-GISEL-NEXT:    v_cmp_o_f16_sdwa vcc, v1, v3 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v1, v6, v2, s[0:1]
; GFX9-GISEL-NEXT:    v_cndmask_b32_sdwa v2, v6, v2, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
; GFX9-GISEL-NEXT:    v_and_b32_e32 v1, 0xffff, v1
; GFX9-GISEL-NEXT:    v_lshl_or_b32 v1, v2, 16, v1
; GFX9-GISEL-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_v4f16:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v3
; GFX12-NEXT:    ; return to shader part epilog
  %val = call <4 x half> @llvm.maximum.v4f16(<4 x half> %a, <4 x half> %b)
  ret <4 x half> %val
}

define amdgpu_ps <4 x half> @test_fmaximum_v4f16_ss(<4 x half> inreg %a, <4 x half> inreg %b) {
; GFX9-SDAG-LABEL: test_fmaximum_v4f16_ss:
; GFX9-SDAG:       ; %bb.0:
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v0, s3
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v1, s3
; GFX9-SDAG-NEXT:    s_lshr_b32 s3, s3, 16
; GFX9-SDAG-NEXT:    v_pk_max_f16 v1, s1, v1
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v2, 0x7e00
; GFX9-SDAG-NEXT:    v_cmp_o_f16_e32 vcc, s1, v0
; GFX9-SDAG-NEXT:    s_lshr_b32 s1, s1, 16
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v0, s3
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v3, v2, v1, vcc
; GFX9-SDAG-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX9-SDAG-NEXT:    v_cmp_o_f16_e32 vcc, s1, v0
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v0, s2
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v4, s2
; GFX9-SDAG-NEXT:    s_lshr_b32 s1, s2, 16
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v1, v2, v1, vcc
; GFX9-SDAG-NEXT:    v_pk_max_f16 v4, s0, v4
; GFX9-SDAG-NEXT:    v_cmp_o_f16_e32 vcc, s0, v0
; GFX9-SDAG-NEXT:    s_lshr_b32 s0, s0, 16
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v5, s1
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v0, v2, v4, vcc
; GFX9-SDAG-NEXT:    v_cmp_o_f16_e32 vcc, s0, v5
; GFX9-SDAG-NEXT:    v_cndmask_b32_sdwa v2, v2, v4, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
; GFX9-SDAG-NEXT:    v_and_b32_e32 v0, 0xffff, v0
; GFX9-SDAG-NEXT:    v_lshl_or_b32 v0, v2, 16, v0
; GFX9-SDAG-NEXT:    v_and_b32_e32 v2, 0xffff, v3
; GFX9-SDAG-NEXT:    v_lshl_or_b32 v1, v1, 16, v2
; GFX9-SDAG-NEXT:    ; return to shader part epilog
;
; GFX9-GISEL-LABEL: test_fmaximum_v4f16_ss:
; GFX9-GISEL:       ; %bb.0:
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v0, s2
; GFX9-GISEL-NEXT:    s_lshr_b32 s2, s2, 16
; GFX9-GISEL-NEXT:    v_pk_max_f16 v1, s0, v0
; GFX9-GISEL-NEXT:    s_lshr_b32 s4, s0, 16
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v2, s2
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-GISEL-NEXT:    v_cmp_o_f16_e32 vcc, s0, v0
; GFX9-GISEL-NEXT:    v_lshrrev_b32_e32 v3, 16, v1
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-GISEL-NEXT:    v_cmp_o_f16_e32 vcc, s4, v2
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v1, v4, v3, vcc
; GFX9-GISEL-NEXT:    v_and_b32_e32 v0, 0xffff, v0
; GFX9-GISEL-NEXT:    s_lshr_b32 s2, s3, 16
; GFX9-GISEL-NEXT:    v_lshl_or_b32 v0, v1, 16, v0
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v1, s3
; GFX9-GISEL-NEXT:    s_lshr_b32 s0, s1, 16
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v3, s2
; GFX9-GISEL-NEXT:    v_pk_max_f16 v2, s1, v1
; GFX9-GISEL-NEXT:    v_cmp_o_f16_e32 vcc, s0, v3
; GFX9-GISEL-NEXT:    v_cmp_o_f16_e64 s[0:1], s1, v1
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v1, v4, v2, s[0:1]
; GFX9-GISEL-NEXT:    v_cndmask_b32_sdwa v2, v4, v2, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
; GFX9-GISEL-NEXT:    v_and_b32_e32 v1, 0xffff, v1
; GFX9-GISEL-NEXT:    v_lshl_or_b32 v1, v2, 16, v1
; GFX9-GISEL-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_v4f16_ss:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_pk_maximum_f16 v0, s0, s2
; GFX12-NEXT:    v_pk_maximum_f16 v1, s1, s3
; GFX12-NEXT:    ; return to shader part epilog
  %val = call <4 x half> @llvm.maximum.v4f16(<4 x half> %a, <4 x half> %b)
  ret <4 x half> %val
}

define amdgpu_ps <2 x float> @test_fmaximum_f64_vv(double %a, double %b) {
; GFX9-SDAG-LABEL: test_fmaximum_f64_vv:
; GFX9-SDAG:       ; %bb.0:
; GFX9-SDAG-NEXT:    v_max_f64 v[4:5], v[0:1], v[2:3]
; GFX9-SDAG-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v1, 0x7ff80000
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v0, v4, 0, vcc
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v1, v5, v1, vcc
; GFX9-SDAG-NEXT:    ; return to shader part epilog
;
; GFX9-GISEL-LABEL: test_fmaximum_f64_vv:
; GFX9-GISEL:       ; %bb.0:
; GFX9-GISEL-NEXT:    v_max_f64 v[4:5], v[0:1], v[2:3]
; GFX9-GISEL-NEXT:    v_cmp_o_f64_e32 vcc, v[0:1], v[2:3]
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v1, 0x7ff80000
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v0, 0, v4, vcc
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v1, v1, v5, vcc
; GFX9-GISEL-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_f64_vv:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[2:3]
; GFX12-NEXT:    ; return to shader part epilog
  %val = call double @llvm.maximum.f64(double %a, double %b)
  %ret = bitcast double %val to <2 x float>
  ret <2 x float> %ret
}

define amdgpu_ps <2 x float> @test_fmaximum_f64_ss(double inreg %a, double inreg %b) {
; GFX9-SDAG-LABEL: test_fmaximum_f64_ss:
; GFX9-SDAG:       ; %bb.0:
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v0, s2
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v1, s3
; GFX9-SDAG-NEXT:    v_max_f64 v[2:3], s[0:1], v[0:1]
; GFX9-SDAG-NEXT:    v_cmp_u_f64_e32 vcc, s[0:1], v[0:1]
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v1, 0x7ff80000
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v1, v3, v1, vcc
; GFX9-SDAG-NEXT:    ; return to shader part epilog
;
; GFX9-GISEL-LABEL: test_fmaximum_f64_ss:
; GFX9-GISEL:       ; %bb.0:
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v0, s2
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v1, s3
; GFX9-GISEL-NEXT:    v_max_f64 v[2:3], s[0:1], v[0:1]
; GFX9-GISEL-NEXT:    v_cmp_o_f64_e32 vcc, s[0:1], v[0:1]
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v1, 0x7ff80000
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v0, 0, v2, vcc
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v1, v1, v3, vcc
; GFX9-GISEL-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_f64_ss:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f64 v[0:1], s[0:1], s[2:3]
; GFX12-NEXT:    ; return to shader part epilog
  %val = call double @llvm.maximum.f64(double %a, double %b)
  %ret = bitcast double %val to <2 x float>
  ret <2 x float> %ret
}

define amdgpu_ps <4 x float> @test_fmaximum_v2f64_ss(<2 x double> inreg %a, <2 x double> inreg %b) {
; GFX9-SDAG-LABEL: test_fmaximum_v2f64_ss:
; GFX9-SDAG:       ; %bb.0:
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v0, s4
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v1, s5
; GFX9-SDAG-NEXT:    v_max_f64 v[2:3], s[0:1], v[0:1]
; GFX9-SDAG-NEXT:    v_cmp_u_f64_e32 vcc, s[0:1], v[0:1]
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v0, s6
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v1, s7
; GFX9-SDAG-NEXT:    v_max_f64 v[4:5], s[2:3], v[0:1]
; GFX9-SDAG-NEXT:    v_cmp_u_f64_e64 s[0:1], s[2:3], v[0:1]
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v6, 0x7ff80000
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v1, v3, v6, vcc
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v2, v4, 0, s[0:1]
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v3, v5, v6, s[0:1]
; GFX9-SDAG-NEXT:    ; return to shader part epilog
;
; GFX9-GISEL-LABEL: test_fmaximum_v2f64_ss:
; GFX9-GISEL:       ; %bb.0:
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v0, s4
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v1, s5
; GFX9-GISEL-NEXT:    v_max_f64 v[2:3], s[0:1], v[0:1]
; GFX9-GISEL-NEXT:    v_cmp_o_f64_e32 vcc, s[0:1], v[0:1]
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v0, s6
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v1, s7
; GFX9-GISEL-NEXT:    v_max_f64 v[4:5], s[2:3], v[0:1]
; GFX9-GISEL-NEXT:    v_cmp_o_f64_e64 s[0:1], s[2:3], v[0:1]
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v6, 0x7ff80000
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v0, 0, v2, vcc
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v1, v6, v3, vcc
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v2, 0, v4, s[0:1]
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v3, v6, v5, s[0:1]
; GFX9-GISEL-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_v2f64_ss:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f64 v[0:1], s[0:1], s[4:5]
; GFX12-NEXT:    v_maximum_f64 v[2:3], s[2:3], s[6:7]
; GFX12-NEXT:    ; return to shader part epilog
  %val = call <2 x double> @llvm.maximum.v2f64(<2 x double> %a, <2 x double> %b)
  %ret = bitcast <2 x double> %val to <4 x float>
  ret <4 x float> %ret
}

define amdgpu_ps <8 x float> @test_fmaximum_v4f64(<4 x double> %a, <4 x double> %b) {
; GFX9-SDAG-LABEL: test_fmaximum_v4f64:
; GFX9-SDAG:       ; %bb.0:
; GFX9-SDAG-NEXT:    v_max_f64 v[16:17], v[0:1], v[8:9]
; GFX9-SDAG-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[8:9]
; GFX9-SDAG-NEXT:    v_max_f64 v[8:9], v[2:3], v[10:11]
; GFX9-SDAG-NEXT:    v_cmp_u_f64_e64 s[0:1], v[2:3], v[10:11]
; GFX9-SDAG-NEXT:    v_max_f64 v[10:11], v[4:5], v[12:13]
; GFX9-SDAG-NEXT:    v_cmp_u_f64_e64 s[2:3], v[4:5], v[12:13]
; GFX9-SDAG-NEXT:    v_max_f64 v[12:13], v[6:7], v[14:15]
; GFX9-SDAG-NEXT:    v_cmp_u_f64_e64 s[4:5], v[6:7], v[14:15]
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v7, 0x7ff80000
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v0, v16, 0, vcc
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v1, v17, v7, vcc
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v2, v8, 0, s[0:1]
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v3, v9, v7, s[0:1]
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v4, v10, 0, s[2:3]
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v5, v11, v7, s[2:3]
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v6, v12, 0, s[4:5]
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v7, v13, v7, s[4:5]
; GFX9-SDAG-NEXT:    ; return to shader part epilog
;
; GFX9-GISEL-LABEL: test_fmaximum_v4f64:
; GFX9-GISEL:       ; %bb.0:
; GFX9-GISEL-NEXT:    v_max_f64 v[16:17], v[0:1], v[8:9]
; GFX9-GISEL-NEXT:    v_cmp_o_f64_e32 vcc, v[0:1], v[8:9]
; GFX9-GISEL-NEXT:    v_max_f64 v[8:9], v[2:3], v[10:11]
; GFX9-GISEL-NEXT:    v_cmp_o_f64_e64 s[0:1], v[2:3], v[10:11]
; GFX9-GISEL-NEXT:    v_max_f64 v[10:11], v[4:5], v[12:13]
; GFX9-GISEL-NEXT:    v_cmp_o_f64_e64 s[2:3], v[4:5], v[12:13]
; GFX9-GISEL-NEXT:    v_max_f64 v[12:13], v[6:7], v[14:15]
; GFX9-GISEL-NEXT:    v_cmp_o_f64_e64 s[4:5], v[6:7], v[14:15]
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v18, 0x7ff80000
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v0, 0, v16, vcc
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v1, v18, v17, vcc
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v2, 0, v8, s[0:1]
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v3, v18, v9, s[0:1]
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v4, 0, v10, s[2:3]
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v5, v18, v11, s[2:3]
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v6, 0, v12, s[4:5]
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v7, v18, v13, s[4:5]
; GFX9-GISEL-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_v4f64:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[8:9]
; GFX12-NEXT:    v_maximum_f64 v[2:3], v[2:3], v[10:11]
; GFX12-NEXT:    v_maximum_f64 v[4:5], v[4:5], v[12:13]
; GFX12-NEXT:    v_maximum_f64 v[6:7], v[6:7], v[14:15]
; GFX12-NEXT:    ; return to shader part epilog
  %val = call <4 x double> @llvm.maximum.v4f64(<4 x double> %a, <4 x double> %b)
  %ret = bitcast <4 x double> %val to <8 x float>
  ret <8 x float> %ret
}

define amdgpu_ps <8 x float> @test_fmaximum_v4f64_ss(<4 x double> inreg %a, <4 x double> inreg %b) {
; GFX9-SDAG-LABEL: test_fmaximum_v4f64_ss:
; GFX9-SDAG:       ; %bb.0:
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v0, s8
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v1, s9
; GFX9-SDAG-NEXT:    v_max_f64 v[2:3], s[0:1], v[0:1]
; GFX9-SDAG-NEXT:    v_cmp_u_f64_e32 vcc, s[0:1], v[0:1]
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v10, 0x7ff80000
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v1, s10
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v2, s11
; GFX9-SDAG-NEXT:    v_max_f64 v[4:5], s[2:3], v[1:2]
; GFX9-SDAG-NEXT:    v_cmp_u_f64_e64 s[0:1], s[2:3], v[1:2]
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v1, s12
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v2, s13
; GFX9-SDAG-NEXT:    v_max_f64 v[6:7], s[4:5], v[1:2]
; GFX9-SDAG-NEXT:    v_cmp_u_f64_e64 s[2:3], s[4:5], v[1:2]
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v1, s14
; GFX9-SDAG-NEXT:    v_mov_b32_e32 v2, s15
; GFX9-SDAG-NEXT:    v_max_f64 v[8:9], s[6:7], v[1:2]
; GFX9-SDAG-NEXT:    v_cmp_u_f64_e64 s[4:5], s[6:7], v[1:2]
; GFX9-SDAG-NEXT:    v_cndmask_b32_e32 v1, v3, v10, vcc
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v2, v4, 0, s[0:1]
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v3, v5, v10, s[0:1]
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v4, v6, 0, s[2:3]
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v5, v7, v10, s[2:3]
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v6, v8, 0, s[4:5]
; GFX9-SDAG-NEXT:    v_cndmask_b32_e64 v7, v9, v10, s[4:5]
; GFX9-SDAG-NEXT:    ; return to shader part epilog
;
; GFX9-GISEL-LABEL: test_fmaximum_v4f64_ss:
; GFX9-GISEL:       ; %bb.0:
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v0, s8
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v1, s9
; GFX9-GISEL-NEXT:    v_max_f64 v[2:3], s[0:1], v[0:1]
; GFX9-GISEL-NEXT:    v_cmp_o_f64_e32 vcc, s[0:1], v[0:1]
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v0, s10
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v1, s11
; GFX9-GISEL-NEXT:    v_max_f64 v[4:5], s[2:3], v[0:1]
; GFX9-GISEL-NEXT:    v_cmp_o_f64_e64 s[0:1], s[2:3], v[0:1]
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v0, s12
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v1, s13
; GFX9-GISEL-NEXT:    v_max_f64 v[6:7], s[4:5], v[0:1]
; GFX9-GISEL-NEXT:    v_cmp_o_f64_e64 s[2:3], s[4:5], v[0:1]
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v0, s14
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v1, s15
; GFX9-GISEL-NEXT:    v_max_f64 v[8:9], s[6:7], v[0:1]
; GFX9-GISEL-NEXT:    v_cmp_o_f64_e64 s[4:5], s[6:7], v[0:1]
; GFX9-GISEL-NEXT:    v_mov_b32_e32 v10, 0x7ff80000
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v0, 0, v2, vcc
; GFX9-GISEL-NEXT:    v_cndmask_b32_e32 v1, v10, v3, vcc
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v2, 0, v4, s[0:1]
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v3, v10, v5, s[0:1]
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v4, 0, v6, s[2:3]
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v5, v10, v7, s[2:3]
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v6, 0, v8, s[4:5]
; GFX9-GISEL-NEXT:    v_cndmask_b32_e64 v7, v10, v9, s[4:5]
; GFX9-GISEL-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_v4f64_ss:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f64 v[0:1], s[0:1], s[8:9]
; GFX12-NEXT:    v_maximum_f64 v[2:3], s[2:3], s[10:11]
; GFX12-NEXT:    v_maximum_f64 v[4:5], s[4:5], s[12:13]
; GFX12-NEXT:    v_maximum_f64 v[6:7], s[6:7], s[14:15]
; GFX12-NEXT:    ; return to shader part epilog
  %val = call <4 x double> @llvm.maximum.v4f64(<4 x double> %a, <4 x double> %b)
  %ret = bitcast <4 x double> %val to <8 x float>
  ret <8 x float> %ret
}

define amdgpu_kernel void @fmaximumi_f32_move_to_valu(ptr addrspace(1) %out, ptr addrspace(1) %aptr, ptr addrspace(1) %bptr) {
; GFX9-LABEL: fmaximumi_f32_move_to_valu:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24
; GFX9-NEXT:    s_load_dwordx2 s[6:7], s[4:5], 0x34
; GFX9-NEXT:    v_mov_b32_e32 v0, 0
; GFX9-NEXT:    v_mov_b32_e32 v3, 0x7fc00000
; GFX9-NEXT:    s_waitcnt lgkmcnt(0)
; GFX9-NEXT:    global_load_dword v1, v0, s[2:3] glc
; GFX9-NEXT:    s_waitcnt vmcnt(0)
; GFX9-NEXT:    global_load_dword v2, v0, s[6:7] glc
; GFX9-NEXT:    s_waitcnt vmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v4, v1, v2
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v4, vcc
; GFX9-NEXT:    global_store_dword v0, v1, s[0:1]
; GFX9-NEXT:    s_endpgm
;
; GFX12-LABEL: fmaximumi_f32_move_to_valu:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_clause 0x1
; GFX12-NEXT:    s_load_b128 s[0:3], s[4:5], 0x24
; GFX12-NEXT:    s_load_b64 s[4:5], s[4:5], 0x34
; GFX12-NEXT:    v_mov_b32_e32 v0, 0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    global_load_b32 v1, v0, s[2:3] scope:SCOPE_SYS
; GFX12-NEXT:    s_wait_loadcnt 0x0
; GFX12-NEXT:    global_load_b32 v2, v0, s[4:5] scope:SCOPE_SYS
; GFX12-NEXT:    s_wait_loadcnt 0x0
; GFX12-NEXT:    v_maximum_f32 v1, v1, v2
; GFX12-NEXT:    global_store_b32 v0, v1, s[0:1]
; GFX12-NEXT:    s_endpgm
  %a = load volatile float, ptr addrspace(1) %aptr, align 4
  %b = load volatile float, ptr addrspace(1) %bptr, align 4
  %v = call float @llvm.maximum.f32(float %a, float %b)
  store float %v, ptr addrspace(1) %out, align 4
  ret void
}

define amdgpu_kernel void @fmaximum_f16_move_to_valu(ptr addrspace(1) %out, ptr addrspace(1) %aptr, ptr addrspace(1) %bptr) {
; GFX9-LABEL: fmaximum_f16_move_to_valu:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24
; GFX9-NEXT:    s_load_dwordx2 s[6:7], s[4:5], 0x34
; GFX9-NEXT:    v_mov_b32_e32 v0, 0
; GFX9-NEXT:    v_mov_b32_e32 v3, 0x7e00
; GFX9-NEXT:    s_waitcnt lgkmcnt(0)
; GFX9-NEXT:    global_load_ushort v1, v0, s[2:3] glc
; GFX9-NEXT:    s_waitcnt vmcnt(0)
; GFX9-NEXT:    global_load_ushort v2, v0, s[6:7] glc
; GFX9-NEXT:    s_waitcnt vmcnt(0)
; GFX9-NEXT:    v_max_f16_e32 v4, v1, v2
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v1, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v4, vcc
; GFX9-NEXT:    global_store_short v0, v1, s[0:1]
; GFX9-NEXT:    s_endpgm
;
; GFX12-SDAG-TRUE16-LABEL: fmaximum_f16_move_to_valu:
; GFX12-SDAG-TRUE16:       ; %bb.0:
; GFX12-SDAG-TRUE16-NEXT:    s_clause 0x1
; GFX12-SDAG-TRUE16-NEXT:    s_load_b128 s[0:3], s[4:5], 0x24
; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[4:5], s[4:5], 0x34
; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v1, 0
; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x0
; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_b16 v0, v1, s[2:3] scope:SCOPE_SYS
; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x0
; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_hi_b16 v0, v1, s[4:5] scope:SCOPE_SYS
; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x0
; GFX12-SDAG-TRUE16-NEXT:    v_maximum_f16 v0.l, v0.l, v0.h
; GFX12-SDAG-TRUE16-NEXT:    global_store_b16 v1, v0, s[0:1]
; GFX12-SDAG-TRUE16-NEXT:    s_endpgm
;
; GFX12-SDAG-FAKE16-LABEL: fmaximum_f16_move_to_valu:
; GFX12-SDAG-FAKE16:       ; %bb.0:
; GFX12-SDAG-FAKE16-NEXT:    s_clause 0x1
; GFX12-SDAG-FAKE16-NEXT:    s_load_b128 s[0:3], s[4:5], 0x24
; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[4:5], s[4:5], 0x34
; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 0
; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x0
; GFX12-SDAG-FAKE16-NEXT:    global_load_u16 v1, v0, s[2:3] scope:SCOPE_SYS
; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x0
; GFX12-SDAG-FAKE16-NEXT:    global_load_u16 v2, v0, s[4:5] scope:SCOPE_SYS
; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x0
; GFX12-SDAG-FAKE16-NEXT:    v_maximum_f16 v1, v1, v2
; GFX12-SDAG-FAKE16-NEXT:    global_store_b16 v0, v1, s[0:1]
; GFX12-SDAG-FAKE16-NEXT:    s_endpgm
;
; GFX12-GISEL-TRUE16-LABEL: fmaximum_f16_move_to_valu:
; GFX12-GISEL-TRUE16:       ; %bb.0:
; GFX12-GISEL-TRUE16-NEXT:    s_clause 0x1
; GFX12-GISEL-TRUE16-NEXT:    s_load_b128 s[0:3], s[4:5], 0x24
; GFX12-GISEL-TRUE16-NEXT:    s_load_b64 s[4:5], s[4:5], 0x34
; GFX12-GISEL-TRUE16-NEXT:    v_mov_b32_e32 v1, 0
; GFX12-GISEL-TRUE16-NEXT:    s_wait_kmcnt 0x0
; GFX12-GISEL-TRUE16-NEXT:    global_load_d16_b16 v0, v1, s[2:3] scope:SCOPE_SYS
; GFX12-GISEL-TRUE16-NEXT:    s_wait_loadcnt 0x0
; GFX12-GISEL-TRUE16-NEXT:    global_load_d16_hi_b16 v0, v1, s[4:5] scope:SCOPE_SYS
; GFX12-GISEL-TRUE16-NEXT:    s_wait_loadcnt 0x0
; GFX12-GISEL-TRUE16-NEXT:    v_maximum_f16 v0.l, v0.l, v0.h
; GFX12-GISEL-TRUE16-NEXT:    global_store_b16 v1, v0, s[0:1]
; GFX12-GISEL-TRUE16-NEXT:    s_endpgm
;
; GFX12-GISEL-FAKE16-LABEL: fmaximum_f16_move_to_valu:
; GFX12-GISEL-FAKE16:       ; %bb.0:
; GFX12-GISEL-FAKE16-NEXT:    s_clause 0x1
; GFX12-GISEL-FAKE16-NEXT:    s_load_b128 s[0:3], s[4:5], 0x24
; GFX12-GISEL-FAKE16-NEXT:    s_load_b64 s[4:5], s[4:5], 0x34
; GFX12-GISEL-FAKE16-NEXT:    v_mov_b32_e32 v0, 0
; GFX12-GISEL-FAKE16-NEXT:    s_wait_kmcnt 0x0
; GFX12-GISEL-FAKE16-NEXT:    global_load_u16 v1, v0, s[2:3] scope:SCOPE_SYS
; GFX12-GISEL-FAKE16-NEXT:    s_wait_loadcnt 0x0
; GFX12-GISEL-FAKE16-NEXT:    global_load_u16 v2, v0, s[4:5] scope:SCOPE_SYS
; GFX12-GISEL-FAKE16-NEXT:    s_wait_loadcnt 0x0
; GFX12-GISEL-FAKE16-NEXT:    v_maximum_f16 v1, v1, v2
; GFX12-GISEL-FAKE16-NEXT:    global_store_b16 v0, v1, s[0:1]
; GFX12-GISEL-FAKE16-NEXT:    s_endpgm
  %a = load volatile half, ptr addrspace(1) %aptr, align 4
  %b = load volatile half, ptr addrspace(1) %bptr, align 4
  %v = call half @llvm.maximum.f16(half %a, half %b)
  store half %v, ptr addrspace(1) %out, align 4
  ret void
}

define amdgpu_ps float @test_fmaximum_f32_ieee_on(float %a, float %b) #0 {
; GFX9-LABEL: test_fmaximum_f32_ieee_on:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_max_f32_e32 v2, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v3, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc
; GFX9-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_f32_ieee_on:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f32 v0, v0, v1
; GFX12-NEXT:    ; return to shader part epilog
  %val = call float @llvm.maximum.f32(float %a, float %b)
  ret float %val
}

define amdgpu_ps float @test_fmaximum_f32_ieee_off(float %a, float %b) #1 {
; GFX9-LABEL: test_fmaximum_f32_ieee_off:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_max_f32_e32 v2, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v3, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc
; GFX9-NEXT:    ; return to shader part epilog
;
; GFX12-LABEL: test_fmaximum_f32_ieee_off:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f32 v0, v0, v1
; GFX12-NEXT:    ; return to shader part epilog
  %val = call float @llvm.maximum.f32(float %a, float %b)
  ret float %val
}

declare float @llvm.maximum.f32(float, float)
declare <2 x float> @llvm.maximum.v2f32(<2 x float>, <2 x float>)
declare <3 x float> @llvm.maximum.v3f32(<3 x float>, <3 x float>)
declare <4 x float> @llvm.maximum.v4f32(<4 x float>, <4 x float>)
declare <16 x float> @llvm.maximum.v16f32(<16 x float>, <16 x float>)
declare half @llvm.maximum.f16(half, half)
declare <2 x half> @llvm.maximum.v2f16(<2 x half>, <2 x half>)
declare <3 x half> @llvm.maximum.v3f16(<3 x half>, <3 x half>)
declare <4 x half> @llvm.maximum.v4f16(<4 x half>, <4 x half>)
declare double @llvm.maximum.f64(double, double)
declare <2 x double> @llvm.maximum.v2f64(<2 x double>, <2 x double>)
declare <4 x double> @llvm.maximum.v4f64(<4 x double>, <4 x double>)

attributes #0 = { nounwind "amdgpu-ieee"="true" }
attributes #1 = { nounwind "amdgpu-ieee"="false" }
