; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 < %s | FileCheck -check-prefix=GFX12 %s
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck -check-prefix=GFX9 %s

define float @v_fmaximum3_f32(float %a, float %b, float %c) {
; GFX12-LABEL: v_fmaximum3_f32:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v0, v1, v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v3, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v1, v0, v2
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call float @llvm.maximum.f32(float %a, float %b)
  %max1 = call float @llvm.maximum.f32(float %max0, float %c)
  ret float %max1
}

define float @v_fmaximum3_f32_commute(float %a, float %b, float %c) {
; GFX12-LABEL: v_fmaximum3_f32_commute:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v2, v0, v1
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32_commute:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v3, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v1, v2, v0
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v2, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call float @llvm.maximum.f32(float %a, float %b)
  %max1 = call float @llvm.maximum.f32(float %c, float %max0)
  ret float %max1
}

define amdgpu_ps i32 @s_fmaximum3_f32(float inreg %a, float inreg %b, float inreg %c) {
; GFX12-LABEL: s_fmaximum3_f32:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_mov_b32_e32 v0, s2
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
; GFX12-NEXT:    v_maximum3_f32 v0, s0, s1, v0
; GFX12-NEXT:    v_readfirstlane_b32 s0, v0
; GFX12-NEXT:    ; return to shader part epilog
;
; GFX9-LABEL: s_fmaximum3_f32:
; 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:    v_max_f32_e32 v1, s2, v0
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, s2, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v2, v1, vcc
; GFX9-NEXT:    v_readfirstlane_b32 s0, v0
; GFX9-NEXT:    ; return to shader part epilog
  %max0 = call float @llvm.maximum.f32(float %a, float %b)
  %max1 = call float @llvm.maximum.f32(float %max0, float %c)
  %cast = bitcast float %max1 to i32
  %readfirstlane = call i32 @llvm.amdgcn.readfirstlane(i32 %cast)
  ret i32 %readfirstlane
}

define float @v_fmaximum3_f32_fabs0(float %a, float %b, float %c) {
; GFX12-LABEL: v_fmaximum3_f32_fabs0:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, |v0|, v1, v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32_fabs0:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e64 v3, |v0|, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, |v0|, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v1, v0, v2
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fabs = call float @llvm.fabs.f32(float %a)
  %max0 = call float @llvm.maximum.f32(float %a.fabs, float %b)
  %max1 = call float @llvm.maximum.f32(float %max0, float %c)
  ret float %max1
}

define float @v_fmaximum3_f32_fabs1(float %a, float %b, float %c) {
; GFX12-LABEL: v_fmaximum3_f32_fabs1:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v0, |v1|, v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32_fabs1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e64 v3, v0, |v1|
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v0, |v1|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v1, v0, v2
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %b.fabs = call float @llvm.fabs.f32(float %b)
  %max0 = call float @llvm.maximum.f32(float %a, float %b.fabs)
  %max1 = call float @llvm.maximum.f32(float %max0, float %c)
  ret float %max1
}

define float @v_fmaximum3_f32_fabs2(float %a, float %b, float %c) {
; GFX12-LABEL: v_fmaximum3_f32_fabs2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v0, v1, |v2|
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32_fabs2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v3, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f32_e64 v1, v0, |v2|
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v0, |v2|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %c.fabs = call float @llvm.fabs.f32(float %c)
  %max0 = call float @llvm.maximum.f32(float %a, float %b)
  %max1 = call float @llvm.maximum.f32(float %max0, float %c.fabs)
  ret float %max1
}

define float @v_fmaximum3_f32_fabs_all(float %a, float %b, float %c) {
; GFX12-LABEL: v_fmaximum3_f32_fabs_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, |v0|, |v1|, |v2|
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32_fabs_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e64 v3, |v0|, |v1|
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, |v0|, |v1|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f32_e64 v1, v0, |v2|
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v0, |v2|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fabs = call float @llvm.fabs.f32(float %a)
  %b.fabs = call float @llvm.fabs.f32(float %b)
  %c.fabs = call float @llvm.fabs.f32(float %c)
  %max0 = call float @llvm.maximum.f32(float %a.fabs, float %b.fabs)
  %max1 = call float @llvm.maximum.f32(float %max0, float %c.fabs)
  ret float %max1
}

define float @v_fmaximum3_f32_fneg_all(float %a, float %b, float %c) {
; GFX12-LABEL: v_fmaximum3_f32_fneg_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, -v0, -v1, -v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32_fneg_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e64 v3, -v0, -v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, -v0, -v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f32_e64 v1, v0, -v2
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v0, -v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fneg = fneg float %a
  %b.fneg = fneg float %b
  %c.fneg = fneg float %c
  %max0 = call float @llvm.maximum.f32(float %a.fneg, float %b.fneg)
  %max1 = call float @llvm.maximum.f32(float %max0, float %c.fneg)
  ret float %max1
}

define float @v_fmaximum3_f32_fneg_fabs_all(float %a, float %b, float %c) {
; GFX12-LABEL: v_fmaximum3_f32_fneg_fabs_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, -|v0|, -|v1|, -|v2|
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32_fneg_fabs_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e64 v3, -|v0|, -|v1|
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, -|v0|, -|v1|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f32_e64 v1, v0, -|v2|
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v0, -|v2|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fabs = call float @llvm.fabs.f32(float %a)
  %b.fabs = call float @llvm.fabs.f32(float %b)
  %c.fabs = call float @llvm.fabs.f32(float %c)
  %a.fneg.fabs = fneg float %a.fabs
  %b.fneg.fabs = fneg float %b.fabs
  %c.fneg.fabs = fneg float %c.fabs
  %max0 = call float @llvm.maximum.f32(float %a.fneg.fabs, float %b.fneg.fabs)
  %max1 = call float @llvm.maximum.f32(float %max0, float %c.fneg.fabs)
  ret float %max1
}

define float @v_fmaximum3_f32_fneg0(float %a, float %b, float %c) {
; GFX12-LABEL: v_fmaximum3_f32_fneg0:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, -v0, v1, v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32_fneg0:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e64 v3, -v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, -v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v1, v0, v2
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fneg = fneg float %a
  %max0 = call float @llvm.maximum.f32(float %a.fneg, float %b)
  %max1 = call float @llvm.maximum.f32(float %max0, float %c)
  ret float %max1
}

define float @v_fmaximum3_f32_fneg1(float %a, float %b, float %c) {
; GFX12-LABEL: v_fmaximum3_f32_fneg1:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v0, -v1, v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32_fneg1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e64 v3, v0, -v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v0, -v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v1, v0, v2
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %b.fneg = fneg float %b
  %max0 = call float @llvm.maximum.f32(float %a, float %b.fneg)
  %max1 = call float @llvm.maximum.f32(float %max0, float %c)
  ret float %max1
}

define float @v_fmaximum3_f32_fneg2(float %a, float %b, float %c) {
; GFX12-LABEL: v_fmaximum3_f32_fneg2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v0, v1, -v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32_fneg2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v3, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f32_e64 v1, v0, -v2
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v0, -v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %c.fneg = fneg float %c
  %max0 = call float @llvm.maximum.f32(float %a, float %b)
  %max1 = call float @llvm.maximum.f32(float %max0, float %c.fneg)
  ret float %max1
}

define float @v_fmaximum3_f32_const0(float %b, float %c) {
; GFX12-LABEL: v_fmaximum3_f32_const0:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v0, 0x41000000, v1
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32_const0:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v2, 0x41000000, v0
; GFX9-NEXT:    v_mov_b32_e32 v3, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc
; GFX9-NEXT:    v_max_f32_e32 v2, v0, v1
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call float @llvm.maximum.f32(float 8.0, float %b)
  %max1 = call float @llvm.maximum.f32(float %max0, float %c)
  ret float %max1
}

define float @v_fmaximum3_f32__const2(float %a, float %b) {
; GFX12-LABEL: v_fmaximum3_f32__const2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v0, v1, 0x41000000
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32__const2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(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:    v_max_f32_e32 v1, 0x41000000, v0
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call float @llvm.maximum.f32(float %a, float %b)
  %max1 = call float @llvm.maximum.f32(float %max0, float 8.0)
  ret float %max1
}

define float @v_fmaximum3_f32_inlineimm0(float %b, float %c) {
; GFX12-LABEL: v_fmaximum3_f32_inlineimm0:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v0, 4.0, v1
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32_inlineimm0:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v2, 4.0, v0
; GFX9-NEXT:    v_mov_b32_e32 v3, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc
; GFX9-NEXT:    v_max_f32_e32 v2, v0, v1
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call float @llvm.maximum.f32(float 4.0, float %b)
  %max1 = call float @llvm.maximum.f32(float %max0, float %c)
  ret float %max1
}

define float @v_fmaximum3_f32__inlineimm(float %a, float %b) {
; GFX12-LABEL: v_fmaximum3_f32__inlineimm:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v0, v1, 4.0
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32__inlineimm:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(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:    v_max_f32_e32 v1, 4.0, v0
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call float @llvm.maximum.f32(float %a, float %b)
  %max1 = call float @llvm.maximum.f32(float %max0, float 4.0)
  ret float %max1
}

define float @v_fmaximum3_f32_const1_const2(float %a) {
; GFX12-LABEL: v_fmaximum3_f32_const1_const2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    s_mov_b32 s0, 0x41000000
; GFX12-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)
; GFX12-NEXT:    v_maximum3_f32 v0, v0, s0, 0x41800000
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f32_const1_const2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v1, 0x41000000, v0
; GFX9-NEXT:    v_mov_b32_e32 v2, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v2, v1, vcc
; GFX9-NEXT:    v_max_f32_e32 v1, 0x41800000, v0
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v2, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call float @llvm.maximum.f32(float %a, float 8.0)
  %max1 = call float @llvm.maximum.f32(float %max0, float 16.0)
  ret float %max1
}

define <2 x float> @v_fmaximum3_v2f32(<2 x float> %a, <2 x float> %b, <2 x float> %c) {
; GFX12-LABEL: v_fmaximum3_v2f32:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v4, v0, v2
; GFX12-NEXT:    v_maximum3_f32 v1, v5, v1, v3
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v2f32:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v6, v1, v3
; GFX9-NEXT:    v_mov_b32_e32 v7, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v6, vcc
; GFX9-NEXT:    v_max_f32_e32 v3, v0, v2
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v2, v4, v0
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v4, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v2, vcc
; GFX9-NEXT:    v_max_f32_e32 v2, v5, v1
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v5, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v2, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <2 x float> @llvm.maximum.v2f32(<2 x float> %a, <2 x float> %b)
  %max1 = call <2 x float> @llvm.maximum.v2f32(<2 x float> %c, <2 x float> %max0)
  ret <2 x float> %max1
}

define <2 x float> @v_fmaximum3_v2f32_commute(<2 x float> %a, <2 x float> %b, <2 x float> %c) {
; GFX12-LABEL: v_fmaximum3_v2f32_commute:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v0, v2, v4
; GFX12-NEXT:    v_maximum3_f32 v1, v1, v3, v5
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v2f32_commute:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v6, v1, v3
; GFX9-NEXT:    v_mov_b32_e32 v7, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v6, vcc
; GFX9-NEXT:    v_max_f32_e32 v3, v0, v2
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v2, v0, v4
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v4
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v2, vcc
; GFX9-NEXT:    v_max_f32_e32 v2, v1, v5
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v5
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v2, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <2 x float> @llvm.maximum.v2f32(<2 x float> %a, <2 x float> %b)
  %max1 = call <2 x float> @llvm.maximum.v2f32(<2 x float> %max0, <2 x float> %c)
  ret <2 x float> %max1
}

define <2 x float> @v_fmaximum3_v2f32__fabs_all(<2 x float> %a, <2 x float> %b, <2 x float> %c) {
; GFX12-LABEL: v_fmaximum3_v2f32__fabs_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, |v0|, |v2|, |v4|
; GFX12-NEXT:    v_maximum3_f32 v1, |v1|, |v3|, |v5|
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v2f32__fabs_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e64 v6, |v1|, |v3|
; GFX9-NEXT:    v_mov_b32_e32 v7, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, |v1|, |v3|
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v6, vcc
; GFX9-NEXT:    v_max_f32_e64 v3, |v0|, |v2|
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, |v0|, |v2|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v3, vcc
; GFX9-NEXT:    v_max_f32_e64 v2, v0, |v4|
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v0, |v4|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v2, vcc
; GFX9-NEXT:    v_max_f32_e64 v2, v1, |v5|
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v1, |v5|
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v2, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fabs = call <2 x float> @llvm.fabs.v2f32(<2 x float> %a)
  %b.fabs = call <2 x float> @llvm.fabs.v2f32(<2 x float> %b)
  %c.fabs = call <2 x float> @llvm.fabs.v2f32(<2 x float> %c)
  %max0 = call <2 x float> @llvm.maximum.v2f32(<2 x float> %a.fabs, <2 x float> %b.fabs)
  %max1 = call <2 x float> @llvm.maximum.v2f32(<2 x float> %max0, <2 x float> %c.fabs)
  ret <2 x float> %max1
}

define <2 x float> @v_fmaximum3_v2f32__fneg_all(<2 x float> %a, <2 x float> %b, <2 x float> %c) {
; GFX12-LABEL: v_fmaximum3_v2f32__fneg_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, -v0, -v2, -v4
; GFX12-NEXT:    v_maximum3_f32 v1, -v1, -v3, -v5
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v2f32__fneg_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e64 v6, -v1, -v3
; GFX9-NEXT:    v_mov_b32_e32 v7, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, -v1, -v3
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v6, vcc
; GFX9-NEXT:    v_max_f32_e64 v3, -v0, -v2
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, -v0, -v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v3, vcc
; GFX9-NEXT:    v_max_f32_e64 v2, v0, -v4
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v0, -v4
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v2, vcc
; GFX9-NEXT:    v_max_f32_e64 v2, v1, -v5
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v1, -v5
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v2, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fneg = fneg <2 x float> %a
  %b.fneg = fneg <2 x float> %b
  %c.fneg = fneg <2 x float> %c
  %max0 = call <2 x float> @llvm.maximum.v2f32(<2 x float> %a.fneg, <2 x float> %b.fneg)
  %max1 = call <2 x float> @llvm.maximum.v2f32(<2 x float> %max0, <2 x float> %c.fneg)
  ret <2 x float> %max1
}

define <2 x float> @v_fmaximum3_v2f32__inlineimm1(<2 x float> %a, <2 x float> %c) {
; GFX12-LABEL: v_fmaximum3_v2f32__inlineimm1:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v0, 2.0, v2
; GFX12-NEXT:    v_maximum3_f32 v1, v1, 2.0, v3
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v2f32__inlineimm1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v4, 2.0, v1
; GFX9-NEXT:    v_mov_b32_e32 v5, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v5, v4, vcc
; GFX9-NEXT:    v_max_f32_e32 v4, 2.0, v0
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v5, v4, vcc
; GFX9-NEXT:    v_max_f32_e32 v4, v0, v2
; 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:    s_setpc_b64 s[30:31]
  %max0 = call <2 x float> @llvm.maximum.v2f32(<2 x float> %a, <2 x float> <float 2.0, float 2.0>)
  %max1 = call <2 x float> @llvm.maximum.v2f32(<2 x float> %max0, <2 x float> %c)
  ret <2 x float> %max1
}

define <2 x float> @v_fmaximum3_v2f32__inlineimm2(<2 x float> %a, <2 x float> %b) {
; GFX12-LABEL: v_fmaximum3_v2f32__inlineimm2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v0, v2, 4.0
; GFX12-NEXT:    v_maximum3_f32 v1, v1, v3, 4.0
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v2f32__inlineimm2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v4, v1, v3
; GFX9-NEXT:    v_mov_b32_e32 v5, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v5, v4, vcc
; GFX9-NEXT:    v_max_f32_e32 v3, v0, v2
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v5, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v2, 4.0, v0
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v5, v2, vcc
; GFX9-NEXT:    v_max_f32_e32 v2, 4.0, v1
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v5, v2, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <2 x float> @llvm.maximum.v2f32(<2 x float> %a, <2 x float> %b)
  %max1 = call <2 x float> @llvm.maximum.v2f32(<2 x float> %max0, <2 x float> <float 4.0, float 4.0>)
  ret <2 x float> %max1
}

define <3 x float> @v_fmaximum3_v3f32(<3 x float> %a, <3 x float> %b, <3 x float> %c) {
; GFX12-LABEL: v_fmaximum3_v3f32:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v6, v0, v3
; GFX12-NEXT:    v_maximum3_f32 v1, v7, v1, v4
; GFX12-NEXT:    v_maximum3_f32 v2, v8, v2, v5
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v3f32:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v9, v2, v5
; GFX9-NEXT:    v_mov_b32_e32 v10, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v2, v5
; GFX9-NEXT:    v_cndmask_b32_e32 v2, v10, v9, vcc
; GFX9-NEXT:    v_max_f32_e32 v5, v1, v4
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v4
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v10, v5, vcc
; GFX9-NEXT:    v_max_f32_e32 v4, v0, v3
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v10, v4, vcc
; GFX9-NEXT:    v_max_f32_e32 v3, v6, v0
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v6, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v10, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v3, v7, v1
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v7, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v10, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v3, v8, v2
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v8, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v2, v10, v3, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <3 x float> @llvm.maximum.v3f32(<3 x float> %a, <3 x float> %b)
  %max1 = call <3 x float> @llvm.maximum.v3f32(<3 x float> %c, <3 x float> %max0)
  ret <3 x float> %max1
}

define <3 x float> @v_fmaximum3_v3f32_commute(<3 x float> %a, <3 x float> %b, <3 x float> %c) {
; GFX12-LABEL: v_fmaximum3_v3f32_commute:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v0, v3, v6
; GFX12-NEXT:    v_maximum3_f32 v1, v1, v4, v7
; GFX12-NEXT:    v_maximum3_f32 v2, v2, v5, v8
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v3f32_commute:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v9, v2, v5
; GFX9-NEXT:    v_mov_b32_e32 v10, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v2, v5
; GFX9-NEXT:    v_cndmask_b32_e32 v2, v10, v9, vcc
; GFX9-NEXT:    v_max_f32_e32 v5, v1, v4
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v4
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v10, v5, vcc
; GFX9-NEXT:    v_max_f32_e32 v4, v0, v3
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v10, v4, vcc
; GFX9-NEXT:    v_max_f32_e32 v3, v0, v6
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v6
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v10, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v3, v1, v7
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v7
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v10, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v3, v2, v8
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v2, v8
; GFX9-NEXT:    v_cndmask_b32_e32 v2, v10, v3, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <3 x float> @llvm.maximum.v3f32(<3 x float> %a, <3 x float> %b)
  %max1 = call <3 x float> @llvm.maximum.v3f32(<3 x float> %max0, <3 x float> %c)
  ret <3 x float> %max1
}

define <3 x float> @v_fmaximum3_v3f32__fabs_all(<3 x float> %a, <3 x float> %b, <3 x float> %c) {
; GFX12-LABEL: v_fmaximum3_v3f32__fabs_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, |v0|, |v3|, |v6|
; GFX12-NEXT:    v_maximum3_f32 v1, |v1|, |v4|, |v7|
; GFX12-NEXT:    v_maximum3_f32 v2, |v2|, |v5|, |v8|
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v3f32__fabs_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e64 v9, |v2|, |v5|
; GFX9-NEXT:    v_mov_b32_e32 v10, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, |v2|, |v5|
; GFX9-NEXT:    v_cndmask_b32_e32 v2, v10, v9, vcc
; GFX9-NEXT:    v_max_f32_e64 v5, |v1|, |v4|
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, |v1|, |v4|
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v10, v5, vcc
; GFX9-NEXT:    v_max_f32_e64 v4, |v0|, |v3|
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, |v0|, |v3|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v10, v4, vcc
; GFX9-NEXT:    v_max_f32_e64 v3, v0, |v6|
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v0, |v6|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v10, v3, vcc
; GFX9-NEXT:    v_max_f32_e64 v3, v1, |v7|
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v1, |v7|
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v10, v3, vcc
; GFX9-NEXT:    v_max_f32_e64 v3, v2, |v8|
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v2, |v8|
; GFX9-NEXT:    v_cndmask_b32_e32 v2, v10, v3, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fabs = call <3 x float> @llvm.fabs.v3f32(<3 x float> %a)
  %b.fabs = call <3 x float> @llvm.fabs.v3f32(<3 x float> %b)
  %c.fabs = call <3 x float> @llvm.fabs.v3f32(<3 x float> %c)
  %max0 = call <3 x float> @llvm.maximum.v3f32(<3 x float> %a.fabs, <3 x float> %b.fabs)
  %max1 = call <3 x float> @llvm.maximum.v3f32(<3 x float> %max0, <3 x float> %c.fabs)
  ret <3 x float> %max1
}

define <3 x float> @v_fmaximum3_v3f32__fneg_all(<3 x float> %a, <3 x float> %b, <3 x float> %c) {
; GFX12-LABEL: v_fmaximum3_v3f32__fneg_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, -v0, -v3, -v6
; GFX12-NEXT:    v_maximum3_f32 v1, -v1, -v4, -v7
; GFX12-NEXT:    v_maximum3_f32 v2, -v2, -v5, -v8
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v3f32__fneg_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e64 v9, -v2, -v5
; GFX9-NEXT:    v_mov_b32_e32 v10, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, -v2, -v5
; GFX9-NEXT:    v_cndmask_b32_e32 v2, v10, v9, vcc
; GFX9-NEXT:    v_max_f32_e64 v5, -v1, -v4
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, -v1, -v4
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v10, v5, vcc
; GFX9-NEXT:    v_max_f32_e64 v4, -v0, -v3
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, -v0, -v3
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v10, v4, vcc
; GFX9-NEXT:    v_max_f32_e64 v3, v0, -v6
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v0, -v6
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v10, v3, vcc
; GFX9-NEXT:    v_max_f32_e64 v3, v1, -v7
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v1, -v7
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v10, v3, vcc
; GFX9-NEXT:    v_max_f32_e64 v3, v2, -v8
; GFX9-NEXT:    v_cmp_o_f32_e64 vcc, v2, -v8
; GFX9-NEXT:    v_cndmask_b32_e32 v2, v10, v3, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fneg = fneg <3 x float> %a
  %b.fneg = fneg <3 x float> %b
  %c.fneg = fneg <3 x float> %c
  %max0 = call <3 x float> @llvm.maximum.v3f32(<3 x float> %a.fneg, <3 x float> %b.fneg)
  %max1 = call <3 x float> @llvm.maximum.v3f32(<3 x float> %max0, <3 x float> %c.fneg)
  ret <3 x float> %max1
}

define <3 x float> @v_fmaximum3_v3f32__inlineimm1(<3 x float> %a, <3 x float> %c) {
; GFX12-LABEL: v_fmaximum3_v3f32__inlineimm1:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v0, 2.0, v3
; GFX12-NEXT:    v_maximum3_f32 v1, v1, 2.0, v4
; GFX12-NEXT:    v_maximum3_f32 v2, v2, 2.0, v5
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v3f32__inlineimm1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v6, 2.0, v2
; GFX9-NEXT:    v_mov_b32_e32 v7, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v2, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v2, v7, v6, vcc
; GFX9-NEXT:    v_max_f32_e32 v6, 2.0, v1
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v6, vcc
; GFX9-NEXT:    v_max_f32_e32 v6, 2.0, v0
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v6, vcc
; GFX9-NEXT:    v_max_f32_e32 v6, v0, v3
; 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:    s_setpc_b64 s[30:31]
  %max0 = call <3 x float> @llvm.maximum.v3f32(<3 x float> %a, <3 x float> <float 2.0, float 2.0, float 2.0>)
  %max1 = call <3 x float> @llvm.maximum.v3f32(<3 x float> %max0, <3 x float> %c)
  ret <3 x float> %max1
}

define <3 x float> @v_fmaximum3_v3f32__inlineimm2(<3 x float> %a, <3 x float> %b) {
; GFX12-LABEL: v_fmaximum3_v3f32__inlineimm2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f32 v0, v0, v3, 4.0
; GFX12-NEXT:    v_maximum3_f32 v1, v1, v4, 4.0
; GFX12-NEXT:    v_maximum3_f32 v2, v2, v5, 4.0
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v3f32__inlineimm2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v6, v2, v5
; GFX9-NEXT:    v_mov_b32_e32 v7, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v2, v5
; GFX9-NEXT:    v_cndmask_b32_e32 v2, v7, v6, vcc
; GFX9-NEXT:    v_max_f32_e32 v5, v1, v4
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v4
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v5, vcc
; GFX9-NEXT:    v_max_f32_e32 v4, v0, v3
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v4, vcc
; GFX9-NEXT:    v_max_f32_e32 v3, 4.0, v0
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v3, 4.0, v1
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v1, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v3, 4.0, v2
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v2, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v2, v7, v3, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <3 x float> @llvm.maximum.v3f32(<3 x float> %a, <3 x float> %b)
  %max1 = call <3 x float> @llvm.maximum.v3f32(<3 x float> %max0, <3 x float> <float 4.0, float 4.0, float 4.0>)
  ret <3 x float> %max1
}


define half @v_fmaximum3_f16(half %a, half %b, half %c) {
; GFX12-LABEL: v_fmaximum3_f16:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f16 v0, v0, v1, v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f16_e32 v3, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f16_e32 v1, v0, v2
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call half @llvm.maximum.f16(half %a, half %b)
  %max1 = call half @llvm.maximum.f16(half %max0, half %c)
  ret half %max1
}

define half @v_fmaximum3_f16_commute(half %a, half %b, half %c) {
; GFX12-LABEL: v_fmaximum3_f16_commute:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f16 v0, v2, v0, v1
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16_commute:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f16_e32 v3, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f16_e32 v1, v2, v0
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v2, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call half @llvm.maximum.f16(half %a, half %b)
  %max1 = call half @llvm.maximum.f16(half %c, half %max0)
  ret half %max1
}

define amdgpu_ps i32 @s_fmaximum3_f16(half inreg %a, half inreg %b, half inreg %c) {
; GFX12-LABEL: s_fmaximum3_f16:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_mov_b32_e32 v0, s2
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
; GFX12-NEXT:    v_maximum3_f16 v0, s0, s1, v0
; GFX12-NEXT:    v_and_b32_e32 v0, 0xffff, v0
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_readfirstlane_b32 s0, v0
; GFX12-NEXT:    ; return to shader part epilog
;
; GFX9-LABEL: s_fmaximum3_f16:
; 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:    v_max_f16_e32 v1, s2, v0
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, s2, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v2, v1, vcc
; GFX9-NEXT:    v_and_b32_e32 v0, 0xffff, v0
; GFX9-NEXT:    v_readfirstlane_b32 s0, v0
; GFX9-NEXT:    ; return to shader part epilog
  %max0 = call half @llvm.maximum.f16(half %a, half %b)
  %max1 = call half @llvm.maximum.f16(half %max0, half %c)
  %cast = bitcast half %max1 to i16
  %zext = zext i16 %cast to i32
  %readfirstlane = call i32 @llvm.amdgcn.readfirstlane(i32 %zext)
  ret i32 %readfirstlane
}

define half @v_fmaximum3_f16_fabs0(half %a, half %b, half %c) {
; GFX12-LABEL: v_fmaximum3_f16_fabs0:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f16 v0, |v0|, v1, v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16_fabs0:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f16_e64 v3, |v0|, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, |v0|, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f16_e32 v1, v0, v2
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fabs = call half @llvm.fabs.f16(half %a)
  %max0 = call half @llvm.maximum.f16(half %a.fabs, half %b)
  %max1 = call half @llvm.maximum.f16(half %max0, half %c)
  ret half %max1
}

define half @v_fmaximum3_f16_fabs1(half %a, half %b, half %c) {
; GFX12-LABEL: v_fmaximum3_f16_fabs1:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f16 v0, v0, |v1|, v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16_fabs1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f16_e64 v3, v0, |v1|
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v0, |v1|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f16_e32 v1, v0, v2
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %b.fabs = call half @llvm.fabs.f16(half %b)
  %max0 = call half @llvm.maximum.f16(half %a, half %b.fabs)
  %max1 = call half @llvm.maximum.f16(half %max0, half %c)
  ret half %max1
}

define half @v_fmaximum3_f16_fabs2(half %a, half %b, half %c) {
; GFX12-LABEL: v_fmaximum3_f16_fabs2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f16 v0, v0, v1, |v2|
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16_fabs2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f16_e32 v3, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f16_e64 v1, v0, |v2|
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v0, |v2|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %c.fabs = call half @llvm.fabs.f16(half %c)
  %max0 = call half @llvm.maximum.f16(half %a, half %b)
  %max1 = call half @llvm.maximum.f16(half %max0, half %c.fabs)
  ret half %max1
}

define half @v_fmaximum3_f16_fabs_all(half %a, half %b, half %c) {
; GFX12-LABEL: v_fmaximum3_f16_fabs_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f16 v0, |v0|, |v1|, |v2|
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16_fabs_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f16_e64 v3, |v0|, |v1|
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, |v0|, |v1|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f16_e64 v1, v0, |v2|
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v0, |v2|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fabs = call half @llvm.fabs.f16(half %a)
  %b.fabs = call half @llvm.fabs.f16(half %b)
  %c.fabs = call half @llvm.fabs.f16(half %c)
  %max0 = call half @llvm.maximum.f16(half %a.fabs, half %b.fabs)
  %max1 = call half @llvm.maximum.f16(half %max0, half %c.fabs)
  ret half %max1
}

define half @v_fmaximum3_f16_fneg_all(half %a, half %b, half %c) {
; GFX12-LABEL: v_fmaximum3_f16_fneg_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f16 v0, -v0, -v1, -v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16_fneg_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f16_e64 v3, -v0, -v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, -v0, -v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f16_e64 v1, v0, -v2
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v0, -v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fneg = fneg half %a
  %b.fneg = fneg half %b
  %c.fneg = fneg half %c
  %max0 = call half @llvm.maximum.f16(half %a.fneg, half %b.fneg)
  %max1 = call half @llvm.maximum.f16(half %max0, half %c.fneg)
  ret half %max1
}

define half @v_fmaximum3_f16_fneg_fabs_all(half %a, half %b, half %c) {
; GFX12-LABEL: v_fmaximum3_f16_fneg_fabs_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f16 v0, -|v0|, -|v1|, -|v2|
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16_fneg_fabs_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f16_e64 v3, -|v0|, -|v1|
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, -|v0|, -|v1|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f16_e64 v1, v0, -|v2|
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v0, -|v2|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fabs = call half @llvm.fabs.f16(half %a)
  %b.fabs = call half @llvm.fabs.f16(half %b)
  %c.fabs = call half @llvm.fabs.f16(half %c)
  %a.fneg.fabs = fneg half %a.fabs
  %b.fneg.fabs = fneg half %b.fabs
  %c.fneg.fabs = fneg half %c.fabs
  %max0 = call half @llvm.maximum.f16(half %a.fneg.fabs, half %b.fneg.fabs)
  %max1 = call half @llvm.maximum.f16(half %max0, half %c.fneg.fabs)
  ret half %max1
}

define half @v_fmaximum3_f16_fneg0(half %a, half %b, half %c) {
; GFX12-LABEL: v_fmaximum3_f16_fneg0:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f16 v0, -v0, v1, v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16_fneg0:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f16_e64 v3, -v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, -v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f16_e32 v1, v0, v2
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fneg = fneg half %a
  %max0 = call half @llvm.maximum.f16(half %a.fneg, half %b)
  %max1 = call half @llvm.maximum.f16(half %max0, half %c)
  ret half %max1
}

define half @v_fmaximum3_f16_fneg1(half %a, half %b, half %c) {
; GFX12-LABEL: v_fmaximum3_f16_fneg1:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f16 v0, v0, -v1, v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16_fneg1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f16_e64 v3, v0, -v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v0, -v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f16_e32 v1, v0, v2
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %b.fneg = fneg half %b
  %max0 = call half @llvm.maximum.f16(half %a, half %b.fneg)
  %max1 = call half @llvm.maximum.f16(half %max0, half %c)
  ret half %max1
}

define half @v_fmaximum3_f16_fneg2(half %a, half %b, half %c) {
; GFX12-LABEL: v_fmaximum3_f16_fneg2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f16 v0, v0, v1, -v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16_fneg2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f16_e32 v3, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f16_e64 v1, v0, -v2
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v0, -v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %c.fneg = fneg half %c
  %max0 = call half @llvm.maximum.f16(half %a, half %b)
  %max1 = call half @llvm.maximum.f16(half %max0, half %c.fneg)
  ret half %max1
}

define half @v_fmaximum3_f16_const0(half %b, half %c) {
; GFX12-LABEL: v_fmaximum3_f16_const0:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f16 v0, v0, 0x4800, v1
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16_const0:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f16_e32 v2, 0x4800, v0
; GFX9-NEXT:    v_mov_b32_e32 v3, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc
; GFX9-NEXT:    v_max_f16_e32 v2, v0, v1
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call half @llvm.maximum.f16(half 8.0, half %b)
  %max1 = call half @llvm.maximum.f16(half %max0, half %c)
  ret half %max1
}

define half @v_fmaximum3_f16__const2(half %a, half %b) {
; GFX12-LABEL: v_fmaximum3_f16__const2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f16 v0, v0, v1, 0x4800
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16__const2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(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:    v_max_f16_e32 v1, 0x4800, v0
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call half @llvm.maximum.f16(half %a, half %b)
  %max1 = call half @llvm.maximum.f16(half %max0, half 8.0)
  ret half %max1
}

define half @v_fmaximum3_f16_inlineimm0(half %b, half %c) {
; GFX12-LABEL: v_fmaximum3_f16_inlineimm0:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f16 v0, v0, 4.0, v1
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16_inlineimm0:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f16_e32 v2, 4.0, v0
; GFX9-NEXT:    v_mov_b32_e32 v3, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc
; GFX9-NEXT:    v_max_f16_e32 v2, v0, v1
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call half @llvm.maximum.f16(half 4.0, half %b)
  %max1 = call half @llvm.maximum.f16(half %max0, half %c)
  ret half %max1
}

define half @v_fmaximum3_f16__inlineimm(half %a, half %b) {
; GFX12-LABEL: v_fmaximum3_f16__inlineimm:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum3_f16 v0, v0, v1, 4.0
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16__inlineimm:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(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:    v_max_f16_e32 v1, 4.0, v0
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call half @llvm.maximum.f16(half %a, half %b)
  %max1 = call half @llvm.maximum.f16(half %max0, half 4.0)
  ret half %max1
}

define half @v_fmaximum3_f16_const1_const2(half %a) {
; GFX12-LABEL: v_fmaximum3_f16_const1_const2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    s_movk_i32 s0, 0x4800
; GFX12-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)
; GFX12-NEXT:    v_maximum3_f16 v0, v0, s0, 0x4c00
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f16_const1_const2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f16_e32 v1, 0x4800, v0
; GFX9-NEXT:    v_mov_b32_e32 v2, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v2, v1, vcc
; GFX9-NEXT:    v_max_f16_e32 v1, 0x4c00, v0
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v2, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call half @llvm.maximum.f16(half %a, half 8.0)
  %max1 = call half @llvm.maximum.f16(half %max0, half 16.0)
  ret half %max1
}

define <2 x half> @v_fmaximum3_v2f16(<2 x half> %a, <2 x half> %b, <2 x half> %c) {
; GFX12-LABEL: v_fmaximum3_v2f16:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v1
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v2, v0
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v2f16:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 v3, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v5, v4, v3, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v3, 16, v3
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v1 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_perm_b32 v1, v0, v5, s4
; GFX9-NEXT:    v_pk_max_f16 v1, v2, v1
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v2, v5
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v4, v1, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v2, v0 src0_sel:WORD_1 src1_sel:DWORD
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    v_perm_b32 v0, v0, v3, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <2 x half> @llvm.maximum.v2f16(<2 x half> %a, <2 x half> %b)
  %max1 = call <2 x half> @llvm.maximum.v2f16(<2 x half> %c, <2 x half> %max0)
  ret <2 x half> %max1
}

define <2 x half> @v_fmaximum3_v2f16_commute(<2 x half> %a, <2 x half> %b, <2 x half> %c) {
; GFX12-LABEL: v_fmaximum3_v2f16_commute:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v1
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v2f16_commute:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 v3, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v5, v4, v3, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v3, 16, v3
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v1 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_perm_b32 v1, v0, v5, s4
; GFX9-NEXT:    v_pk_max_f16 v1, v1, v2
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v5, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v4, v1, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v2 src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    v_perm_b32 v0, v0, v3, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <2 x half> @llvm.maximum.v2f16(<2 x half> %a, <2 x half> %b)
  %max1 = call <2 x half> @llvm.maximum.v2f16(<2 x half> %max0, <2 x half> %c)
  ret <2 x half> %max1
}

define <2 x half> @v_fmaximum3_v2f16__fabs_all(<2 x half> %a, <2 x half> %b, <2 x half> %c) {
; GFX12-LABEL: v_fmaximum3_v2f16__fabs_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_and_b32_e32 v0, 0x7fff7fff, v0
; GFX12-NEXT:    v_and_b32_e32 v1, 0x7fff7fff, v1
; GFX12-NEXT:    v_and_b32_e32 v2, 0x7fff7fff, v2
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v1
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v2f16__fabs_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_and_b32_e32 v3, 0x7fff7fff, v0
; GFX9-NEXT:    v_and_b32_e32 v4, 0x7fff7fff, v1
; GFX9-NEXT:    v_pk_max_f16 v3, v3, v4
; GFX9-NEXT:    v_lshrrev_b32_e32 v4, 16, v3
; GFX9-NEXT:    v_mov_b32_e32 v6, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, |v0|, |v1| src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v4, v6, v4, vcc
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, |v0|, |v1|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v6, v3, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_and_b32_e32 v5, 0x7fff7fff, v2
; GFX9-NEXT:    v_perm_b32 v1, v4, v0, s4
; GFX9-NEXT:    v_pk_max_f16 v1, v1, v5
; GFX9-NEXT:    v_lshrrev_b32_e32 v3, 16, v1
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v4, |v2| src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v6, v3, vcc
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v0, |v2|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v6, v1, vcc
; GFX9-NEXT:    v_perm_b32 v0, v3, v0, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fabs = call <2 x half> @llvm.fabs.v2f16(<2 x half> %a)
  %b.fabs = call <2 x half> @llvm.fabs.v2f16(<2 x half> %b)
  %c.fabs = call <2 x half> @llvm.fabs.v2f16(<2 x half> %c)
  %max0 = call <2 x half> @llvm.maximum.v2f16(<2 x half> %a.fabs, <2 x half> %b.fabs)
  %max1 = call <2 x half> @llvm.maximum.v2f16(<2 x half> %max0, <2 x half> %c.fabs)
  ret <2 x half> %max1
}

define <2 x half> @v_fmaximum3_v2f16__fneg_all(<2 x half> %a, <2 x half> %b, <2 x half> %c) {
; GFX12-LABEL: v_fmaximum3_v2f16__fneg_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v1 neg_lo:[1,1] neg_hi:[1,1]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2 neg_lo:[0,1] neg_hi:[0,1]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v2f16__fneg_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 v3, v0, v1 neg_lo:[1,1] neg_hi:[1,1]
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, -v0, -v1
; GFX9-NEXT:    v_cndmask_b32_e32 v5, v4, v3, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v3, 16, v3
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, -v0, -v1 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_perm_b32 v1, v0, v5, s4
; GFX9-NEXT:    v_pk_max_f16 v1, v1, v2 neg_lo:[0,1] neg_hi:[0,1]
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v5, -v2
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v4, v1, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, -v2 src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v1, vcc
; GFX9-NEXT:    v_perm_b32 v0, v0, v3, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fneg = fneg <2 x half> %a
  %b.fneg = fneg <2 x half> %b
  %c.fneg = fneg <2 x half> %c
  %max0 = call <2 x half> @llvm.maximum.v2f16(<2 x half> %a.fneg, <2 x half> %b.fneg)
  %max1 = call <2 x half> @llvm.maximum.v2f16(<2 x half> %max0, <2 x half> %c.fneg)
  ret <2 x half> %max1
}

define <2 x half> @v_fmaximum3_v2f16__inlineimm1(<2 x half> %a, <2 x half> %c) {
; GFX12-LABEL: v_fmaximum3_v2f16__inlineimm1:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, 2.0 op_sel_hi:[1,0]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v1
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v2f16__inlineimm1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 v2, v0, 2.0 op_sel_hi:[1,0]
; GFX9-NEXT:    v_lshrrev_b32_e32 v3, 16, v2
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v0 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v4, v3, vcc
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v2, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_perm_b32 v2, v3, v0, s4
; GFX9-NEXT:    v_pk_max_f16 v2, v2, v1
; GFX9-NEXT:    v_lshrrev_b32_e32 v5, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v3, v1 src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v4, v5, vcc
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v2, vcc
; GFX9-NEXT:    v_perm_b32 v0, v3, v0, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <2 x half> @llvm.maximum.v2f16(<2 x half> %a, <2 x half> <half 2.0, half 2.0>)
  %max1 = call <2 x half> @llvm.maximum.v2f16(<2 x half> %max0, <2 x half> %c)
  ret <2 x half> %max1
}

define <2 x half> @v_fmaximum3_v2f16__inlineimm2(<2 x half> %a, <2 x half> %b) {
; GFX12-LABEL: v_fmaximum3_v2f16__inlineimm2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v1
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, 4.0 op_sel_hi:[1,0]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v2f16__inlineimm2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 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 v4, v3, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v1 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v2, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_perm_b32 v1, v0, v4, s4
; GFX9-NEXT:    v_pk_max_f16 v1, v1, 4.0 op_sel_hi:[1,0]
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v4, v4
; GFX9-NEXT:    v_cndmask_b32_e32 v2, v3, v1, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v1, vcc
; GFX9-NEXT:    v_perm_b32 v0, v0, v2, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <2 x half> @llvm.maximum.v2f16(<2 x half> %a, <2 x half> %b)
  %max1 = call <2 x half> @llvm.maximum.v2f16(<2 x half> %max0, <2 x half> <half 4.0, half 4.0>)
  ret <2 x half> %max1
}

define <3 x half> @v_fmaximum3_v3f16(<3 x half> %a, <3 x half> %b, <3 x half> %c) {
; GFX12-LABEL: v_fmaximum3_v3f16:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v3
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v4, v0
; GFX12-NEXT:    v_pk_maximum_f16 v1, v5, v1
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v3f16:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 v6, v0, v2
; GFX9-NEXT:    v_mov_b32_e32 v7, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v8, v7, v6, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v6, 16, v6
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v2 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v6, vcc
; GFX9-NEXT:    v_pk_max_f16 v2, v1, v3
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v1, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v6, v7, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v1, v3 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v2, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_perm_b32 v1, v1, v6, s4
; GFX9-NEXT:    v_pk_max_f16 v1, v5, v1
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v5, v6
; GFX9-NEXT:    v_perm_b32 v2, v0, v8, s4
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v1, vcc
; GFX9-NEXT:    v_pk_max_f16 v2, v4, v2
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v4, v8
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v7, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v4, v0 src0_sel:WORD_1 src1_sel:DWORD
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v2, vcc
; GFX9-NEXT:    v_perm_b32 v0, v0, v3, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <3 x half> @llvm.maximum.v3f16(<3 x half> %a, <3 x half> %b)
  %max1 = call <3 x half> @llvm.maximum.v3f16(<3 x half> %c, <3 x half> %max0)
  ret <3 x half> %max1
}

define <3 x half> @v_fmaximum3_v3f16_commute(<3 x half> %a, <3 x half> %b, <3 x half> %c) {
; GFX12-LABEL: v_fmaximum3_v3f16_commute:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v3
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v4
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v5
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v3f16_commute:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 v6, v0, v2
; GFX9-NEXT:    v_mov_b32_e32 v7, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v8, v7, v6, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v6, 16, v6
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v2 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v6, vcc
; GFX9-NEXT:    v_pk_max_f16 v2, v1, v3
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v1, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v6, v7, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v1, v3 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v2, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_perm_b32 v1, v1, v6, s4
; GFX9-NEXT:    v_pk_max_f16 v1, v1, v5
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v6, v5
; GFX9-NEXT:    v_perm_b32 v2, v0, v8, s4
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v1, vcc
; GFX9-NEXT:    v_pk_max_f16 v2, v2, v4
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v8, v4
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v7, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v4 src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v2, vcc
; GFX9-NEXT:    v_perm_b32 v0, v0, v3, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <3 x half> @llvm.maximum.v3f16(<3 x half> %a, <3 x half> %b)
  %max1 = call <3 x half> @llvm.maximum.v3f16(<3 x half> %max0, <3 x half> %c)
  ret <3 x half> %max1
}

define <3 x half> @v_fmaximum3_v3f16__fabs_all(<3 x half> %a, <3 x half> %b, <3 x half> %c) {
; GFX12-LABEL: v_fmaximum3_v3f16__fabs_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_and_b32_e32 v0, 0x7fff7fff, v0
; GFX12-NEXT:    v_and_b32_e32 v1, 0x7fff7fff, v1
; GFX12-NEXT:    v_and_b32_e32 v2, 0x7fff7fff, v2
; GFX12-NEXT:    v_and_b32_e32 v3, 0x7fff7fff, v3
; GFX12-NEXT:    v_and_b32_e32 v5, 0x7fff7fff, v5
; GFX12-NEXT:    v_and_b32_e32 v4, 0x7fff7fff, v4
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v3
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v4
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v5
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v3f16__fabs_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_and_b32_e32 v7, 0x7fff7fff, v1
; GFX9-NEXT:    v_and_b32_e32 v9, 0x7fff7fff, v3
; GFX9-NEXT:    v_and_b32_e32 v6, 0x7fff7fff, v0
; GFX9-NEXT:    v_and_b32_e32 v8, 0x7fff7fff, v2
; GFX9-NEXT:    v_pk_max_f16 v7, v7, v9
; GFX9-NEXT:    v_lshrrev_b32_e32 v9, 16, v7
; GFX9-NEXT:    v_mov_b32_e32 v12, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, |v1|, |v3| src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_pk_max_f16 v6, v6, v8
; GFX9-NEXT:    v_cndmask_b32_e32 v9, v12, v9, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v8, 16, v6
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, |v0|, |v2| src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v8, v12, v8, vcc
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, |v1|, |v3|
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v12, v7, vcc
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, |v0|, |v2|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v12, v6, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_and_b32_e32 v11, 0x7fff7fff, v4
; GFX9-NEXT:    v_perm_b32 v2, v8, v0, s4
; GFX9-NEXT:    v_pk_max_f16 v2, v2, v11
; GFX9-NEXT:    v_and_b32_e32 v10, 0x7fff7fff, v5
; GFX9-NEXT:    v_lshrrev_b32_e32 v3, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v8, |v4| src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_perm_b32 v6, v9, v1, s4
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v12, v3, vcc
; GFX9-NEXT:    v_pk_max_f16 v6, v6, v10
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v1, |v5|
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v12, v6, vcc
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v0, |v4|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v12, v2, vcc
; GFX9-NEXT:    v_perm_b32 v0, v3, v0, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fabs = call <3 x half> @llvm.fabs.v3f16(<3 x half> %a)
  %b.fabs = call <3 x half> @llvm.fabs.v3f16(<3 x half> %b)
  %c.fabs = call <3 x half> @llvm.fabs.v3f16(<3 x half> %c)
  %max0 = call <3 x half> @llvm.maximum.v3f16(<3 x half> %a.fabs, <3 x half> %b.fabs)
  %max1 = call <3 x half> @llvm.maximum.v3f16(<3 x half> %max0, <3 x half> %c.fabs)
  ret <3 x half> %max1
}

define <3 x half> @v_fmaximum3_v3f16__fneg_all(<3 x half> %a, <3 x half> %b, <3 x half> %c) {
; GFX12-LABEL: v_fmaximum3_v3f16__fneg_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2 neg_lo:[1,1] neg_hi:[1,1]
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v3 neg_lo:[1,1] neg_hi:[1,1]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v4 neg_lo:[0,1] neg_hi:[0,1]
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v5 neg_lo:[0,1] neg_hi:[0,1]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v3f16__fneg_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 v6, v0, v2 neg_lo:[1,1] neg_hi:[1,1]
; GFX9-NEXT:    v_mov_b32_e32 v7, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, -v0, -v2
; GFX9-NEXT:    v_cndmask_b32_e32 v8, v7, v6, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v6, 16, v6
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, -v0, -v2 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v6, vcc
; GFX9-NEXT:    v_pk_max_f16 v2, v1, v3 neg_lo:[1,1] neg_hi:[1,1]
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, -v1, -v3
; GFX9-NEXT:    v_cndmask_b32_e32 v6, v7, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, -v1, -v3 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v2, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_perm_b32 v1, v1, v6, s4
; GFX9-NEXT:    v_pk_max_f16 v1, v1, v5 neg_lo:[0,1] neg_hi:[0,1]
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v6, -v5
; GFX9-NEXT:    v_perm_b32 v2, v0, v8, s4
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v1, vcc
; GFX9-NEXT:    v_pk_max_f16 v2, v2, v4 neg_lo:[0,1] neg_hi:[0,1]
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v8, -v4
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v7, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, -v4 src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v2, vcc
; GFX9-NEXT:    v_perm_b32 v0, v0, v3, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fneg = fneg <3 x half> %a
  %b.fneg = fneg <3 x half> %b
  %c.fneg = fneg <3 x half> %c
  %max0 = call <3 x half> @llvm.maximum.v3f16(<3 x half> %a.fneg, <3 x half> %b.fneg)
  %max1 = call <3 x half> @llvm.maximum.v3f16(<3 x half> %max0, <3 x half> %c.fneg)
  ret <3 x half> %max1
}

define <3 x half> @v_fmaximum3_v3f16__inlineimm1(<3 x half> %a, <3 x half> %c) {
; GFX12-LABEL: v_fmaximum3_v3f16__inlineimm1:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, 2.0 op_sel_hi:[1,0]
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, 2.0
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v3
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v3f16__inlineimm1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 v4, v0, 2.0 op_sel_hi:[1,0]
; GFX9-NEXT:    v_lshrrev_b32_e32 v5, 16, v4
; GFX9-NEXT:    v_mov_b32_e32 v6, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v0 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v5, v6, v5, vcc
; GFX9-NEXT:    v_pk_max_f16 v7, v1, 2.0
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v1, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v6, v7, vcc
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v6, v4, vcc
; GFX9-NEXT:    s_mov_b32 s5, 0x5040100
; GFX9-NEXT:    v_perm_b32 v4, v5, v0, s5
; GFX9-NEXT:    v_pk_max_f16 v4, v4, v2
; GFX9-NEXT:    s_movk_i32 s4, 0x7e00
; GFX9-NEXT:    v_lshrrev_b32_e32 v7, 16, v4
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v5, v2 src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v5, v6, v7, vcc
; GFX9-NEXT:    v_pack_b32_f16 v7, v1, s4
; GFX9-NEXT:    v_pk_max_f16 v7, v7, v3
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v1, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v6, v7, vcc
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v6, v4, vcc
; GFX9-NEXT:    v_perm_b32 v0, v5, v0, s5
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <3 x half> @llvm.maximum.v3f16(<3 x half> %a, <3 x half> <half 2.0, half 2.0, half 2.0>)
  %max1 = call <3 x half> @llvm.maximum.v3f16(<3 x half> %max0, <3 x half> %c)
  ret <3 x half> %max1
}

define <3 x half> @v_fmaximum3_v3f16__inlineimm2(<3 x half> %a, <3 x half> %b) {
; GFX12-LABEL: v_fmaximum3_v3f16__inlineimm2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v3
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, 4.0 op_sel_hi:[1,0]
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, 4.0
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v3f16__inlineimm2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 v4, v0, v2
; GFX9-NEXT:    v_mov_b32_e32 v5, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v6, v5, v4, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v4, 16, v4
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v2 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v5, v4, vcc
; GFX9-NEXT:    v_pk_max_f16 v2, v1, v3
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v1, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v4, v5, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v1, v3 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v5, v2, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_perm_b32 v1, v1, v4, s4
; GFX9-NEXT:    v_pk_max_f16 v1, v1, 4.0
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v4, v4
; GFX9-NEXT:    v_perm_b32 v2, v0, v6, s4
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v5, v1, vcc
; GFX9-NEXT:    v_pk_max_f16 v2, v2, 4.0 op_sel_hi:[1,0]
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v6, v6
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v5, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v5, v2, vcc
; GFX9-NEXT:    v_perm_b32 v0, v0, v3, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <3 x half> @llvm.maximum.v3f16(<3 x half> %a, <3 x half> %b)
  %max1 = call <3 x half> @llvm.maximum.v3f16(<3 x half> %max0, <3 x half> <half 4.0, half 4.0, half 4.0>)
  ret <3 x half> %max1
}

define <4 x half> @v_fmaximum3_v4f16(<4 x half> %a, <4 x half> %b, <4 x half> %c) {
; GFX12-LABEL: v_fmaximum3_v4f16:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v3
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v4, v0
; GFX12-NEXT:    v_pk_maximum_f16 v1, v5, v1
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v4f16:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 v6, v0, v2
; GFX9-NEXT:    v_mov_b32_e32 v7, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v8, v7, v6, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v6, 16, v6
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v2 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v6, vcc
; GFX9-NEXT:    v_pk_max_f16 v2, v1, v3
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v1, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v6, v7, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v1, v3 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v2, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_perm_b32 v2, v1, v6, s4
; GFX9-NEXT:    v_pk_max_f16 v2, v5, v2
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v5, v6
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v7, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v5, v1 src0_sel:WORD_1 src1_sel:DWORD
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v2, vcc
; GFX9-NEXT:    v_perm_b32 v2, v0, v8, s4
; GFX9-NEXT:    v_pk_max_f16 v2, v4, v2
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v4, v8
; GFX9-NEXT:    v_cndmask_b32_e32 v5, v7, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v4, v0 src0_sel:WORD_1 src1_sel:DWORD
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v2, vcc
; GFX9-NEXT:    v_perm_b32 v0, v0, v5, s4
; GFX9-NEXT:    v_perm_b32 v1, v1, v3, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <4 x half> @llvm.maximum.v4f16(<4 x half> %a, <4 x half> %b)
  %max1 = call <4 x half> @llvm.maximum.v4f16(<4 x half> %c, <4 x half> %max0)
  ret <4 x half> %max1
}

define <4 x half> @v_fmaximum3_v4f16_commute(<4 x half> %a, <4 x half> %b, <4 x half> %c) {
; GFX12-LABEL: v_fmaximum3_v4f16_commute:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v3
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v4
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v5
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v4f16_commute:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 v6, v0, v2
; GFX9-NEXT:    v_mov_b32_e32 v7, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v8, v7, v6, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v6, 16, v6
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v2 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v6, vcc
; GFX9-NEXT:    v_pk_max_f16 v2, v1, v3
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v1, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v6, v7, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v1, v3 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v2, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_perm_b32 v2, v1, v6, s4
; GFX9-NEXT:    v_pk_max_f16 v2, v2, v5
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v6, v5
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v7, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v1, v5 src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v2, vcc
; GFX9-NEXT:    v_perm_b32 v2, v0, v8, s4
; GFX9-NEXT:    v_pk_max_f16 v2, v2, v4
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v8, v4
; GFX9-NEXT:    v_cndmask_b32_e32 v5, v7, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v4 src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v2, vcc
; GFX9-NEXT:    v_perm_b32 v0, v0, v5, s4
; GFX9-NEXT:    v_perm_b32 v1, v1, v3, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <4 x half> @llvm.maximum.v4f16(<4 x half> %a, <4 x half> %b)
  %max1 = call <4 x half> @llvm.maximum.v4f16(<4 x half> %max0, <4 x half> %c)
  ret <4 x half> %max1
}

define <4 x half> @v_fmaximum3_v4f16__fabs_all(<4 x half> %a, <4 x half> %b, <4 x half> %c) {
; GFX12-LABEL: v_fmaximum3_v4f16__fabs_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_and_b32_e32 v0, 0x7fff7fff, v0
; GFX12-NEXT:    v_and_b32_e32 v1, 0x7fff7fff, v1
; GFX12-NEXT:    v_and_b32_e32 v2, 0x7fff7fff, v2
; GFX12-NEXT:    v_and_b32_e32 v3, 0x7fff7fff, v3
; GFX12-NEXT:    v_and_b32_e32 v5, 0x7fff7fff, v5
; GFX12-NEXT:    v_and_b32_e32 v4, 0x7fff7fff, v4
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v3
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v4
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v5
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v4f16__fabs_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_and_b32_e32 v7, 0x7fff7fff, v0
; GFX9-NEXT:    v_and_b32_e32 v9, 0x7fff7fff, v2
; GFX9-NEXT:    v_and_b32_e32 v6, 0x7fff7fff, v1
; GFX9-NEXT:    v_and_b32_e32 v8, 0x7fff7fff, v3
; GFX9-NEXT:    v_pk_max_f16 v7, v7, v9
; GFX9-NEXT:    v_lshrrev_b32_e32 v9, 16, v7
; GFX9-NEXT:    v_mov_b32_e32 v12, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, |v0|, |v2| src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_pk_max_f16 v6, v6, v8
; GFX9-NEXT:    v_cndmask_b32_e32 v9, v12, v9, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v8, 16, v6
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, |v1|, |v3| src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v8, v12, v8, vcc
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, |v0|, |v2|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v12, v7, vcc
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, |v1|, |v3|
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v12, v6, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_and_b32_e32 v11, 0x7fff7fff, v5
; GFX9-NEXT:    v_perm_b32 v2, v8, v1, s4
; GFX9-NEXT:    v_and_b32_e32 v10, 0x7fff7fff, v4
; GFX9-NEXT:    v_pk_max_f16 v2, v2, v11
; GFX9-NEXT:    v_perm_b32 v6, v9, v0, s4
; GFX9-NEXT:    v_lshrrev_b32_e32 v3, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v8, |v5| src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_pk_max_f16 v6, v6, v10
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v12, v3, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v7, 16, v6
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v9, |v4| src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v7, v12, v7, vcc
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v1, |v5|
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v12, v2, vcc
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v0, |v4|
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v12, v6, vcc
; GFX9-NEXT:    v_perm_b32 v0, v7, v0, s4
; GFX9-NEXT:    v_perm_b32 v1, v3, v1, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fabs = call <4 x half> @llvm.fabs.v4f16(<4 x half> %a)
  %b.fabs = call <4 x half> @llvm.fabs.v4f16(<4 x half> %b)
  %c.fabs = call <4 x half> @llvm.fabs.v4f16(<4 x half> %c)
  %max0 = call <4 x half> @llvm.maximum.v4f16(<4 x half> %a.fabs, <4 x half> %b.fabs)
  %max1 = call <4 x half> @llvm.maximum.v4f16(<4 x half> %max0, <4 x half> %c.fabs)
  ret <4 x half> %max1
}

define <4 x half> @v_fmaximum3_v4f16__fneg_all(<4 x half> %a, <4 x half> %b, <4 x half> %c) {
; GFX12-LABEL: v_fmaximum3_v4f16__fneg_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2 neg_lo:[1,1] neg_hi:[1,1]
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v3 neg_lo:[1,1] neg_hi:[1,1]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v4 neg_lo:[0,1] neg_hi:[0,1]
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v5 neg_lo:[0,1] neg_hi:[0,1]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v4f16__fneg_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 v6, v0, v2 neg_lo:[1,1] neg_hi:[1,1]
; GFX9-NEXT:    v_mov_b32_e32 v7, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, -v0, -v2
; GFX9-NEXT:    v_cndmask_b32_e32 v8, v7, v6, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v6, 16, v6
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, -v0, -v2 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v6, vcc
; GFX9-NEXT:    v_pk_max_f16 v2, v1, v3 neg_lo:[1,1] neg_hi:[1,1]
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, -v1, -v3
; GFX9-NEXT:    v_cndmask_b32_e32 v6, v7, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, -v1, -v3 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v2, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_perm_b32 v2, v1, v6, s4
; GFX9-NEXT:    v_pk_max_f16 v2, v2, v5 neg_lo:[0,1] neg_hi:[0,1]
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v6, -v5
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v7, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v1, -v5 src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v2, vcc
; GFX9-NEXT:    v_perm_b32 v2, v0, v8, s4
; GFX9-NEXT:    v_pk_max_f16 v2, v2, v4 neg_lo:[0,1] neg_hi:[0,1]
; GFX9-NEXT:    v_cmp_o_f16_e64 vcc, v8, -v4
; GFX9-NEXT:    v_cndmask_b32_e32 v5, v7, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, -v4 src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v7, v2, vcc
; GFX9-NEXT:    v_perm_b32 v0, v0, v5, s4
; GFX9-NEXT:    v_perm_b32 v1, v1, v3, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fneg = fneg <4 x half> %a
  %b.fneg = fneg <4 x half> %b
  %c.fneg = fneg <4 x half> %c
  %max0 = call <4 x half> @llvm.maximum.v4f16(<4 x half> %a.fneg, <4 x half> %b.fneg)
  %max1 = call <4 x half> @llvm.maximum.v4f16(<4 x half> %max0, <4 x half> %c.fneg)
  ret <4 x half> %max1
}

define <4 x half> @v_fmaximum3_v4f16__inlineimm1(<4 x half> %a, <4 x half> %c) {
; GFX12-LABEL: v_fmaximum3_v4f16__inlineimm1:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, 2.0 op_sel_hi:[1,0]
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, 2.0 op_sel_hi:[1,0]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v3
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v4f16__inlineimm1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 v4, v0, 2.0 op_sel_hi:[1,0]
; GFX9-NEXT:    v_lshrrev_b32_e32 v5, 16, v4
; GFX9-NEXT:    v_mov_b32_e32 v6, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v0 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_pk_max_f16 v7, v1, 2.0 op_sel_hi:[1,0]
; GFX9-NEXT:    v_cndmask_b32_e32 v5, v6, v5, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v8, 16, v7
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v1, v1 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v8, v6, v8, vcc
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v6, v4, vcc
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v1, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v6, v7, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_perm_b32 v4, v8, v1, s4
; GFX9-NEXT:    v_pk_max_f16 v4, v4, v3
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v8, v3 src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_perm_b32 v8, v5, v0, s4
; GFX9-NEXT:    v_lshrrev_b32_e32 v7, 16, v4
; GFX9-NEXT:    v_pk_max_f16 v8, v8, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v7, v6, v7, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v9, 16, v8
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v5, v2 src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v5, v6, v9, vcc
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v1, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v6, v4, vcc
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v6, v8, vcc
; GFX9-NEXT:    v_perm_b32 v0, v5, v0, s4
; GFX9-NEXT:    v_perm_b32 v1, v7, v1, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <4 x half> @llvm.maximum.v4f16(<4 x half> %a, <4 x half> <half 2.0, half 2.0, half 2.0, half 2.0>)
  %max1 = call <4 x half> @llvm.maximum.v4f16(<4 x half> %max0, <4 x half> %c)
  ret <4 x half> %max1
}

define <4 x half> @v_fmaximum3_v4f16__inlineimm2(<4 x half> %a, <4 x half> %b) {
; GFX12-LABEL: v_fmaximum3_v4f16__inlineimm2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v2
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, v3
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, 4.0 op_sel_hi:[1,0]
; GFX12-NEXT:    v_pk_maximum_f16 v1, v1, 4.0 op_sel_hi:[1,0]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_v4f16__inlineimm2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 v4, v0, v2
; GFX9-NEXT:    v_mov_b32_e32 v5, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v6, v5, v4, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v4, 16, v4
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v2 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v5, v4, vcc
; GFX9-NEXT:    v_pk_max_f16 v2, v1, v3
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v1, v3
; GFX9-NEXT:    v_cndmask_b32_e32 v4, v5, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v1, v3 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v5, v2, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_perm_b32 v2, v1, v4, s4
; GFX9-NEXT:    v_pk_max_f16 v2, v2, 4.0 op_sel_hi:[1,0]
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v4, v4
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v5, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v1, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v5, v2, vcc
; GFX9-NEXT:    v_perm_b32 v2, v0, v6, s4
; GFX9-NEXT:    v_pk_max_f16 v2, v2, 4.0 op_sel_hi:[1,0]
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v6, v6
; GFX9-NEXT:    v_cndmask_b32_e32 v4, v5, v2, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v5, v2, vcc
; GFX9-NEXT:    v_perm_b32 v0, v0, v4, s4
; GFX9-NEXT:    v_perm_b32 v1, v1, v3, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <4 x half> @llvm.maximum.v4f16(<4 x half> %a, <4 x half> %b)
  %max1 = call <4 x half> @llvm.maximum.v4f16(<4 x half> %max0, <4 x half> <half 4.0, half 4.0, half 4.0, half 4.0>)
  ret <4 x half> %max1
}

define double @v_fmaximum3_f64(double %a, double %b, double %c) {
; GFX12-LABEL: v_fmaximum3_f64:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[2:3]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[4:5]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f64 v[6:7], v[0:1], v[2:3]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]
; GFX9-NEXT:    v_mov_b32_e32 v8, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v8, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], v[4:5]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v8, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call double @llvm.maximum.f64(double %a, double %b)
  %max1 = call double @llvm.maximum.f64(double %max0, double %c)
  ret double %max1
}

define double @v_fmaximum3_f64_commute(double %a, double %b, double %c) {
; GFX12-LABEL: v_fmaximum3_f64_commute:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[2:3]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[4:5], v[0:1]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64_commute:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f64 v[6:7], v[0:1], v[2:3]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]
; GFX9-NEXT:    v_mov_b32_e32 v8, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v8, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[4:5], v[0:1]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[4:5], v[0:1]
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v8, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call double @llvm.maximum.f64(double %a, double %b)
  %max1 = call double @llvm.maximum.f64(double %c, double %max0)
  ret double %max1
}

define amdgpu_ps <2 x i32> @s_fmaximum3_f64(double inreg %a, double inreg %b, double inreg %c) {
; GFX12-LABEL: s_fmaximum3_f64:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_maximum_f64 v[0:1], s[0:1], s[2:3]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], s[4:5]
; GFX12-NEXT:    v_readfirstlane_b32 s0, v0
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2)
; GFX12-NEXT:    v_readfirstlane_b32 s1, v1
; GFX12-NEXT:    ; return to shader part epilog
;
; GFX9-LABEL: s_fmaximum3_f64:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    v_mov_b32_e32 v0, s2
; GFX9-NEXT:    v_mov_b32_e32 v1, s3
; GFX9-NEXT:    v_max_f64 v[2:3], s[0:1], v[0:1]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, s[0:1], v[0:1]
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v4, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], s[4:5]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, s[4:5], v[0:1]
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v3, v4, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v1, v2, 0, vcc
; GFX9-NEXT:    v_readfirstlane_b32 s0, v1
; GFX9-NEXT:    v_readfirstlane_b32 s1, v0
; GFX9-NEXT:    ; return to shader part epilog
  %max0 = call double @llvm.maximum.f64(double %a, double %b)
  %max1 = call double @llvm.maximum.f64(double %max0, double %c)
  %cast = bitcast double %max1 to <2 x i32>
  %elt0 = extractelement <2 x i32> %cast, i32 0
  %elt1 = extractelement <2 x i32> %cast, i32 1
  %readlane0 = call i32 @llvm.amdgcn.readfirstlane(i32 %elt0)
  %readlane1 = call i32 @llvm.amdgcn.readfirstlane(i32 %elt1)
  %insert.0 = insertelement <2 x i32> poison, i32 %readlane0, i32 0
  %insert.1 = insertelement <2 x i32> %insert.0, i32 %readlane1, i32 1
  ret <2 x i32> %insert.1
}

define double @v_fmaximum3_f64_fabs0(double %a, double %b, double %c) {
; GFX12-LABEL: v_fmaximum3_f64_fabs0:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], |v[0:1]|, v[2:3]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[4:5]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64_fabs0:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f64 v[6:7], |v[0:1]|, v[2:3]
; GFX9-NEXT:    v_cmp_u_f64_e64 vcc, |v[0:1]|, v[2:3]
; GFX9-NEXT:    v_mov_b32_e32 v8, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v8, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], v[4:5]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v8, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fabs = call double @llvm.fabs.f64(double %a)
  %max0 = call double @llvm.maximum.f64(double %a.fabs, double %b)
  %max1 = call double @llvm.maximum.f64(double %max0, double %c)
  ret double %max1
}

define double @v_fmaximum3_f64_fabs1(double %a, double %b, double %c) {
; GFX12-LABEL: v_fmaximum3_f64_fabs1:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], |v[2:3]|
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[4:5]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64_fabs1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f64 v[6:7], v[0:1], |v[2:3]|
; GFX9-NEXT:    v_cmp_u_f64_e64 vcc, v[0:1], |v[2:3]|
; GFX9-NEXT:    v_mov_b32_e32 v8, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v8, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], v[4:5]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v8, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %b.fabs = call double @llvm.fabs.f64(double %b)
  %max0 = call double @llvm.maximum.f64(double %a, double %b.fabs)
  %max1 = call double @llvm.maximum.f64(double %max0, double %c)
  ret double %max1
}

define double @v_fmaximum3_f64_fabs2(double %a, double %b, double %c) {
; GFX12-LABEL: v_fmaximum3_f64_fabs2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[2:3]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], |v[4:5]|
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64_fabs2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f64 v[6:7], v[0:1], v[2:3]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]
; GFX9-NEXT:    v_mov_b32_e32 v8, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v8, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], |v[4:5]|
; GFX9-NEXT:    v_cmp_u_f64_e64 vcc, v[0:1], |v[4:5]|
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v8, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %c.fabs = call double @llvm.fabs.f64(double %c)
  %max0 = call double @llvm.maximum.f64(double %a, double %b)
  %max1 = call double @llvm.maximum.f64(double %max0, double %c.fabs)
  ret double %max1
}

define double @v_fmaximum3_f64_fabs_all(double %a, double %b, double %c) {
; GFX12-LABEL: v_fmaximum3_f64_fabs_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], |v[0:1]|, |v[2:3]|
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], |v[4:5]|
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64_fabs_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f64 v[6:7], |v[0:1]|, |v[2:3]|
; GFX9-NEXT:    v_cmp_u_f64_e64 vcc, |v[0:1]|, |v[2:3]|
; GFX9-NEXT:    v_mov_b32_e32 v8, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v8, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], |v[4:5]|
; GFX9-NEXT:    v_cmp_u_f64_e64 vcc, v[0:1], |v[4:5]|
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v8, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fabs = call double @llvm.fabs.f64(double %a)
  %b.fabs = call double @llvm.fabs.f64(double %b)
  %c.fabs = call double @llvm.fabs.f64(double %c)
  %max0 = call double @llvm.maximum.f64(double %a.fabs, double %b.fabs)
  %max1 = call double @llvm.maximum.f64(double %max0, double %c.fabs)
  ret double %max1
}

define double @v_fmaximum3_f64_fneg_all(double %a, double %b, double %c) {
; GFX12-LABEL: v_fmaximum3_f64_fneg_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], -v[0:1], -v[2:3]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], -v[4:5]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64_fneg_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f64 v[6:7], -v[0:1], -v[2:3]
; GFX9-NEXT:    v_cmp_u_f64_e64 vcc, -v[0:1], -v[2:3]
; GFX9-NEXT:    v_mov_b32_e32 v8, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v8, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], -v[4:5]
; GFX9-NEXT:    v_cmp_u_f64_e64 vcc, v[0:1], -v[4:5]
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v8, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fneg = fneg double %a
  %b.fneg = fneg double %b
  %c.fneg = fneg double %c
  %max0 = call double @llvm.maximum.f64(double %a.fneg, double %b.fneg)
  %max1 = call double @llvm.maximum.f64(double %max0, double %c.fneg)
  ret double %max1
}

define double @v_fmaximum3_f64_fneg_fabs_all(double %a, double %b, double %c) {
; GFX12-LABEL: v_fmaximum3_f64_fneg_fabs_all:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], -|v[0:1]|, -|v[2:3]|
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], -|v[4:5]|
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64_fneg_fabs_all:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f64 v[6:7], -|v[0:1]|, -|v[2:3]|
; GFX9-NEXT:    v_cmp_u_f64_e64 vcc, -|v[0:1]|, -|v[2:3]|
; GFX9-NEXT:    v_mov_b32_e32 v8, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v8, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], -|v[4:5]|
; GFX9-NEXT:    v_cmp_u_f64_e64 vcc, v[0:1], -|v[4:5]|
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v8, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fabs = call double @llvm.fabs.f64(double %a)
  %b.fabs = call double @llvm.fabs.f64(double %b)
  %c.fabs = call double @llvm.fabs.f64(double %c)
  %a.fneg.fabs = fneg double %a.fabs
  %b.fneg.fabs = fneg double %b.fabs
  %c.fneg.fabs = fneg double %c.fabs
  %max0 = call double @llvm.maximum.f64(double %a.fneg.fabs, double %b.fneg.fabs)
  %max1 = call double @llvm.maximum.f64(double %max0, double %c.fneg.fabs)
  ret double %max1
}

define double @v_fmaximum3_f64_fneg0(double %a, double %b, double %c) {
; GFX12-LABEL: v_fmaximum3_f64_fneg0:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], -v[0:1], v[2:3]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[4:5]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64_fneg0:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f64 v[6:7], -v[0:1], v[2:3]
; GFX9-NEXT:    v_cmp_u_f64_e64 vcc, -v[0:1], v[2:3]
; GFX9-NEXT:    v_mov_b32_e32 v8, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v8, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], v[4:5]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v8, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %a.fneg = fneg double %a
  %max0 = call double @llvm.maximum.f64(double %a.fneg, double %b)
  %max1 = call double @llvm.maximum.f64(double %max0, double %c)
  ret double %max1
}

define double @v_fmaximum3_f64_fneg1(double %a, double %b, double %c) {
; GFX12-LABEL: v_fmaximum3_f64_fneg1:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], -v[2:3]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[4:5]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64_fneg1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f64 v[6:7], v[0:1], -v[2:3]
; GFX9-NEXT:    v_cmp_u_f64_e64 vcc, v[0:1], -v[2:3]
; GFX9-NEXT:    v_mov_b32_e32 v8, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v8, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], v[4:5]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v8, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %b.fneg = fneg double %b
  %max0 = call double @llvm.maximum.f64(double %a, double %b.fneg)
  %max1 = call double @llvm.maximum.f64(double %max0, double %c)
  ret double %max1
}

define double @v_fmaximum3_f64_fneg2(double %a, double %b, double %c) {
; GFX12-LABEL: v_fmaximum3_f64_fneg2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[2:3]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], -v[4:5]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64_fneg2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f64 v[6:7], v[0:1], v[2:3]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]
; GFX9-NEXT:    v_mov_b32_e32 v8, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v8, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], -v[4:5]
; GFX9-NEXT:    v_cmp_u_f64_e64 vcc, v[0:1], -v[4:5]
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v8, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %c.fneg = fneg double %c
  %max0 = call double @llvm.maximum.f64(double %a, double %b)
  %max1 = call double @llvm.maximum.f64(double %max0, double %c.fneg)
  ret double %max1
}

define double @v_fmaximum3_f64_const0(double %b, double %c) {
; GFX12-LABEL: v_fmaximum3_f64_const0:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], 0x40200000, v[0:1]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[2:3]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64_const0:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    s_mov_b32 s4, 0
; GFX9-NEXT:    s_mov_b32 s5, 0x40200000
; GFX9-NEXT:    v_max_f64 v[4:5], v[0:1], s[4:5]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[0:1]
; GFX9-NEXT:    v_mov_b32_e32 v6, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v5, v6, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v4, 0, vcc
; GFX9-NEXT:    v_max_f64 v[4:5], v[0:1], v[2:3]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v4, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v5, v6, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call double @llvm.maximum.f64(double 8.0, double %b)
  %max1 = call double @llvm.maximum.f64(double %max0, double %c)
  ret double %max1
}

define double @v_fmaximum3_f64__const2(double %a, double %b) {
; GFX12-LABEL: v_fmaximum3_f64__const2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[2:3]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], 0x40200000, v[0:1]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64__const2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f64 v[4:5], v[0:1], v[2:3]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]
; GFX9-NEXT:    v_mov_b32_e32 v6, 0x7ff80000
; GFX9-NEXT:    s_mov_b32 s4, 0
; GFX9-NEXT:    s_mov_b32 s5, 0x40200000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v5, v6, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v4, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], s[4:5]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[0:1]
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v6, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call double @llvm.maximum.f64(double %a, double %b)
  %max1 = call double @llvm.maximum.f64(double %max0, double 8.0)
  ret double %max1
}

define double @v_fmaximum3_f64_inlineimm0(double %b, double %c) {
; GFX12-LABEL: v_fmaximum3_f64_inlineimm0:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], 4.0
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[2:3]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64_inlineimm0:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f64 v[4:5], v[0:1], 4.0
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[0:1]
; GFX9-NEXT:    v_mov_b32_e32 v6, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v5, v6, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v4, 0, vcc
; GFX9-NEXT:    v_max_f64 v[4:5], v[0:1], v[2:3]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v4, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v5, v6, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call double @llvm.maximum.f64(double 4.0, double %b)
  %max1 = call double @llvm.maximum.f64(double %max0, double %c)
  ret double %max1
}

define double @v_fmaximum3_f64__inlineimm(double %a, double %b) {
; GFX12-LABEL: v_fmaximum3_f64__inlineimm:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[2:3]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], 4.0
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64__inlineimm:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f64 v[4:5], v[0:1], v[2:3]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]
; GFX9-NEXT:    v_mov_b32_e32 v6, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v5, v6, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v4, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], 4.0
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[0:1]
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v6, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call double @llvm.maximum.f64(double %a, double %b)
  %max1 = call double @llvm.maximum.f64(double %max0, double 4.0)
  ret double %max1
}

define double @v_fmaximum3_f64_const1_const2(double %a) {
; GFX12-LABEL: v_fmaximum3_f64_const1_const2:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], 0x40200000, v[0:1]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[0:1], 0x40300000, v[0:1]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_fmaximum3_f64_const1_const2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    s_mov_b32 s4, 0
; GFX9-NEXT:    s_mov_b32 s5, 0x40200000
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], s[4:5]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[0:1]
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7ff80000
; GFX9-NEXT:    s_mov_b32 s4, 0
; GFX9-NEXT:    s_mov_b32 s5, 0x40300000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v4, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], s[4:5]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[0:1]
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v2, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v3, v4, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call double @llvm.maximum.f64(double %a, double 8.0)
  %max1 = call double @llvm.maximum.f64(double %max0, double 16.0)
  ret double %max1
}

define <2 x float> @v_no_fmaximum3_f32__multi_use(float %a, float %b, float %c) {
; GFX12-LABEL: v_no_fmaximum3_f32__multi_use:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f32 v0, v0, v1
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f32 v1, v0, v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_no_fmaximum3_f32__multi_use:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f32_e32 v3, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7fc00000
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f32_e32 v1, v0, v2
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v4, v1, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call float @llvm.maximum.f32(float %a, float %b)
  %max1 = call float @llvm.maximum.f32(float %max0, float %c)
  %insert.0 = insertelement <2 x float> poison, float %max0, i32 0
  %insert.1 = insertelement <2 x float> %insert.0, float %max1, i32 1
  ret <2 x float> %insert.1
}

define amdgpu_ps <2 x i32> @s_no_fmaximum3_f32__multi_use(float inreg %a, float inreg %b, float inreg %c) {
; GFX12-LABEL: s_no_fmaximum3_f32__multi_use:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_maximum_f32 s0, s0, s1
; GFX12-NEXT:    s_delay_alu instid0(SALU_CYCLE_3)
; GFX12-NEXT:    s_maximum_f32 s1, s0, s2
; GFX12-NEXT:    ; return to shader part epilog
;
; GFX9-LABEL: s_no_fmaximum3_f32__multi_use:
; 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:    v_max_f32_e32 v1, s2, v0
; GFX9-NEXT:    v_cmp_o_f32_e32 vcc, s2, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v2, v1, vcc
; GFX9-NEXT:    v_readfirstlane_b32 s0, v0
; GFX9-NEXT:    v_readfirstlane_b32 s1, v1
; GFX9-NEXT:    ; return to shader part epilog
  %max0 = call float @llvm.maximum.f32(float %a, float %b)
  %max1 = call float @llvm.maximum.f32(float %max0, float %c)
  %cast0 = bitcast float %max0 to i32
  %cast1 = bitcast float %max1 to i32
  %readfirstlane0 = call i32 @llvm.amdgcn.readfirstlane(i32 %cast0)
  %readfirstlane1 = call i32 @llvm.amdgcn.readfirstlane(i32 %cast1)
  %insert.0 = insertelement <2 x i32> poison, i32 %readfirstlane0, i32 0
  %insert.1 = insertelement <2 x i32> %insert.0, i32 %readfirstlane1, i32 1
  ret <2 x i32> %insert.1
}

define <2 x half> @v_no_fmaximum3_f16__multi_use(half %a, half %b, half %c) {
; GFX12-LABEL: v_no_fmaximum3_f16__multi_use:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f16 v0, v0, v1
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f16 v1, v0, v2
; GFX12-NEXT:    v_pack_b32_f16 v0, v0, v1
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_no_fmaximum3_f16__multi_use:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f16_e32 v3, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v0, v4, v3, vcc
; GFX9-NEXT:    v_max_f16_e32 v1, v0, v2
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v4, v1, vcc
; GFX9-NEXT:    v_pack_b32_f16 v0, v0, v1
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call half @llvm.maximum.f16(half %a, half %b)
  %max1 = call half @llvm.maximum.f16(half %max0, half %c)
  %insert.0 = insertelement <2 x half> poison, half %max0, i32 0
  %insert.1 = insertelement <2 x half> %insert.0, half %max1, i32 1
  ret <2 x half> %insert.1
}

define amdgpu_ps <2 x i32> @s_no_fmaximum3_f16__multi_use(half inreg %a, half inreg %b, half inreg %c) {
; GFX12-LABEL: s_no_fmaximum3_f16__multi_use:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_maximum_f16 s0, s0, s1
; GFX12-NEXT:    s_delay_alu instid0(SALU_CYCLE_3) | instskip(SKIP_1) | instid1(SALU_CYCLE_2)
; GFX12-NEXT:    s_maximum_f16 s1, s0, s2
; GFX12-NEXT:    s_and_b32 s0, 0xffff, s0
; GFX12-NEXT:    s_and_b32 s1, 0xffff, s1
; GFX12-NEXT:    ; return to shader part epilog
;
; GFX9-LABEL: s_no_fmaximum3_f16__multi_use:
; 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:    v_max_f16_e32 v1, s2, v0
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, s2, v0
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v2, v1, vcc
; GFX9-NEXT:    v_and_b32_e32 v0, 0xffff, v0
; GFX9-NEXT:    v_and_b32_e32 v1, 0xffff, v1
; GFX9-NEXT:    v_readfirstlane_b32 s0, v0
; GFX9-NEXT:    v_readfirstlane_b32 s1, v1
; GFX9-NEXT:    ; return to shader part epilog
  %max0 = call half @llvm.maximum.f16(half %a, half %b)
  %max1 = call half @llvm.maximum.f16(half %max0, half %c)
  %cast0 = bitcast half %max0 to i16
  %cast1 = bitcast half %max1 to i16
  %ext0 = zext i16 %cast0 to i32
  %ext1 = zext i16 %cast1 to i32
  %readfirstlane0 = call i32 @llvm.amdgcn.readfirstlane(i32 %ext0)
  %readfirstlane1 = call i32 @llvm.amdgcn.readfirstlane(i32 %ext1)
  %insert.0 = insertelement <2 x i32> poison, i32 %readfirstlane0, i32 0
  %insert.1 = insertelement <2 x i32> %insert.0, i32 %readfirstlane1, i32 1
  ret <2 x i32> %insert.1
}

define <4 x half> @v_no_fmaximum3_v2f16__multi_use(<2 x half> %a, <2 x half> %b, <2 x half> %c) {
; GFX12-LABEL: v_no_fmaximum3_v2f16__multi_use:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_pk_maximum_f16 v0, v0, v1
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_pk_maximum_f16 v1, v0, v2
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_no_fmaximum3_v2f16__multi_use:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_pk_max_f16 v3, v0, v1
; GFX9-NEXT:    v_mov_b32_e32 v4, 0x7e00
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v0, v1
; GFX9-NEXT:    v_cndmask_b32_e32 v5, v4, v3, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v3, 16, v3
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v0, v1 src0_sel:WORD_1 src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v4, v3, vcc
; GFX9-NEXT:    s_mov_b32 s4, 0x5040100
; GFX9-NEXT:    v_perm_b32 v0, v1, v5, s4
; GFX9-NEXT:    v_pk_max_f16 v3, v0, v2
; GFX9-NEXT:    v_cmp_o_f16_e32 vcc, v5, v2
; GFX9-NEXT:    v_cndmask_b32_e32 v5, v4, v3, vcc
; GFX9-NEXT:    v_lshrrev_b32_e32 v3, 16, v3
; GFX9-NEXT:    v_cmp_o_f16_sdwa vcc, v1, v2 src0_sel:DWORD src1_sel:WORD_1
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v4, v3, vcc
; GFX9-NEXT:    v_perm_b32 v1, v1, v5, s4
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call <2 x half> @llvm.maximum.f16(<2 x half> %a, <2 x half> %b)
  %max1 = call <2 x half> @llvm.maximum.f16(<2 x half> %max0, <2 x half> %c)
  %concat = shufflevector <2 x half> %max0, <2 x half> %max1, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  ret <4 x half> %concat
}

define <2 x double> @v_no_fmaximum3_f64__multi_use(double %a, double %b, double %c) {
; GFX12-LABEL: v_no_fmaximum3_f64__multi_use:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
; GFX12-NEXT:    s_wait_expcnt 0x0
; GFX12-NEXT:    s_wait_samplecnt 0x0
; GFX12-NEXT:    s_wait_bvhcnt 0x0
; GFX12-NEXT:    s_wait_kmcnt 0x0
; GFX12-NEXT:    v_maximum_f64 v[0:1], v[0:1], v[2:3]
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_maximum_f64 v[2:3], v[0:1], v[4:5]
; GFX12-NEXT:    s_setpc_b64 s[30:31]
;
; GFX9-LABEL: v_no_fmaximum3_f64__multi_use:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    v_max_f64 v[6:7], v[0:1], v[2:3]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]
; GFX9-NEXT:    v_mov_b32_e32 v8, 0x7ff80000
; GFX9-NEXT:    v_cndmask_b32_e32 v1, v7, v8, vcc
; GFX9-NEXT:    v_cndmask_b32_e64 v0, v6, 0, vcc
; GFX9-NEXT:    v_max_f64 v[2:3], v[0:1], v[4:5]
; GFX9-NEXT:    v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]
; GFX9-NEXT:    v_cndmask_b32_e64 v2, v2, 0, vcc
; GFX9-NEXT:    v_cndmask_b32_e32 v3, v3, v8, vcc
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %max0 = call double @llvm.maximum.f64(double %a, double %b)
  %max1 = call double @llvm.maximum.f64(double %max0, double %c)
  %insert.0 = insertelement <2 x double> poison, double %max0, i32 0
  %insert.1 = insertelement <2 x double> %insert.0, double %max1, i32 1
  ret <2 x double> %insert.1
}
