; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=SICIVI -check-prefix=SI %s
; RUN: llc -march=amdgcn -mcpu=tonga -mattr=-flat-for-global -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=SICIVI -check-prefix=VI %s
; RUN: llc -march=amdgcn -mcpu=gfx900 -mattr=-flat-for-global -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=GFX9 %s

declare i32 @llvm.amdgcn.workitem.id.x() #0

; GCN-LABEL: {{^}}v_test_smed3_r_i_i_i32:
; GCN: v_med3_i32 v{{[0-9]+}}, v{{[0-9]+}}, 12, 17
define amdgpu_kernel void @v_test_smed3_r_i_i_i32(i32 addrspace(1)* %out, i32 addrspace(1)* %aptr) #1 {
  %tid = call i32 @llvm.amdgcn.workitem.id.x()
  %gep0 = getelementptr i32, i32 addrspace(1)* %aptr, i32 %tid
  %outgep = getelementptr i32, i32 addrspace(1)* %out, i32 %tid
  %a = load i32, i32 addrspace(1)* %gep0

  %icmp0 = icmp sgt i32 %a, 12
  %i0 = select i1 %icmp0, i32 %a, i32 12

  %icmp1 = icmp slt i32 %i0, 17
  %i1 = select i1 %icmp1, i32 %i0, i32 17

  store i32 %i1, i32 addrspace(1)* %outgep
  ret void
}

; GCN-LABEL: {{^}}v_test_smed3_multi_use_r_i_i_i32:
; GCN: v_max_i32
; GCN: v_min_i32
define amdgpu_kernel void @v_test_smed3_multi_use_r_i_i_i32(i32 addrspace(1)* %out, i32 addrspace(1)* %aptr) #1 {
  %tid = call i32 @llvm.amdgcn.workitem.id.x()
  %gep0 = getelementptr i32, i32 addrspace(1)* %aptr, i32 %tid
  %outgep = getelementptr i32, i32 addrspace(1)* %out, i32 %tid
  %a = load i32, i32 addrspace(1)* %gep0

  %icmp0 = icmp sgt i32 %a, 12
  %i0 = select i1 %icmp0, i32 %a, i32 12

  %icmp1 = icmp slt i32 %i0, 17
  %i1 = select i1 %icmp1, i32 %i0, i32 17

  store volatile i32 %i0, i32 addrspace(1)* %outgep
  store volatile i32 %i1, i32 addrspace(1)* %outgep
  ret void
}

; GCN-LABEL: {{^}}v_test_smed3_r_i_i_constant_order_i32:
; GCN: v_max_i32_e32 v{{[0-9]+}}, 17, v{{[0-9]+}}
; GCN: v_min_i32_e32 v{{[0-9]+}}, 12, v{{[0-9]+}}
define amdgpu_kernel void @v_test_smed3_r_i_i_constant_order_i32(i32 addrspace(1)* %out, i32 addrspace(1)* %aptr) #1 {
  %tid = call i32 @llvm.amdgcn.workitem.id.x()
  %gep0 = getelementptr i32, i32 addrspace(1)* %aptr, i32 %tid
  %outgep = getelementptr i32, i32 addrspace(1)* %out, i32 %tid
  %a = load i32, i32 addrspace(1)* %gep0

  %icmp0 = icmp sgt i32 %a, 17
  %i0 = select i1 %icmp0, i32 %a, i32 17

  %icmp1 = icmp slt i32 %i0, 12
  %i1 = select i1 %icmp1, i32 %i0, i32 12

  store i32 %i1, i32 addrspace(1)* %outgep
  ret void
}

; GCN-LABEL: {{^}}v_test_smed3_r_i_i_sign_mismatch_i32:
; GCN: v_max_u32_e32 v{{[0-9]+}}, 12, v{{[0-9]+}}
; GCN: v_min_i32_e32 v{{[0-9]+}}, 17, v{{[0-9]+}}
define amdgpu_kernel void @v_test_smed3_r_i_i_sign_mismatch_i32(i32 addrspace(1)* %out, i32 addrspace(1)* %aptr) #1 {
  %tid = call i32 @llvm.amdgcn.workitem.id.x()
  %gep0 = getelementptr i32, i32 addrspace(1)* %aptr, i32 %tid
  %outgep = getelementptr i32, i32 addrspace(1)* %out, i32 %tid
  %a = load i32, i32 addrspace(1)* %gep0

  %icmp0 = icmp ugt i32 %a, 12
  %i0 = select i1 %icmp0, i32 %a, i32 12

  %icmp1 = icmp slt i32 %i0, 17
  %i1 = select i1 %icmp1, i32 %i0, i32 17

  store i32 %i1, i32 addrspace(1)* %outgep
  ret void
}

; GCN-LABEL: {{^}}v_test_smed3_r_i_i_i64:
; GCN: v_cmp_lt_i64
; GCN: v_cmp_gt_i64
define amdgpu_kernel void @v_test_smed3_r_i_i_i64(i64 addrspace(1)* %out, i64 addrspace(1)* %aptr) #1 {
  %tid = call i32 @llvm.amdgcn.workitem.id.x()
  %gep0 = getelementptr i64, i64 addrspace(1)* %aptr, i32 %tid
  %outgep = getelementptr i64, i64 addrspace(1)* %out, i32 %tid
  %a = load i64, i64 addrspace(1)* %gep0

  %icmp0 = icmp sgt i64 %a, 12
  %i0 = select i1 %icmp0, i64 %a, i64 12

  %icmp1 = icmp slt i64 %i0, 17
  %i1 = select i1 %icmp1, i64 %i0, i64 17

  store i64 %i1, i64 addrspace(1)* %outgep
  ret void
}

; GCN-LABEL: {{^}}v_test_smed3_r_i_i_i16:
; SICIVI: v_med3_i32 v{{[0-9]+}}, v{{[0-9]+}}, 12, 17
; GFX9: v_med3_i16 v{{[0-9]+}}, v{{[0-9]+}}, 12, 17
define amdgpu_kernel void @v_test_smed3_r_i_i_i16(i16 addrspace(1)* %out, i16 addrspace(1)* %aptr) #1 {
  %tid = call i32 @llvm.amdgcn.workitem.id.x()
  %gep0 = getelementptr i16, i16 addrspace(1)* %aptr, i32 %tid
  %outgep = getelementptr i16, i16 addrspace(1)* %out, i32 %tid
  %a = load i16, i16 addrspace(1)* %gep0

  %icmp0 = icmp sgt i16 %a, 12
  %i0 = select i1 %icmp0, i16 %a, i16 12

  %icmp1 = icmp slt i16 %i0, 17
  %i1 = select i1 %icmp1, i16 %i0, i16 17

  store i16 %i1, i16 addrspace(1)* %outgep
  ret void
}


define internal i32 @smin(i32 %x, i32 %y) #2 {
  %cmp = icmp slt i32 %x, %y
  %sel = select i1 %cmp, i32 %x, i32 %y
  ret i32 %sel
}

define internal i32 @smax(i32 %x, i32 %y) #2 {
  %cmp = icmp sgt i32 %x, %y
  %sel = select i1 %cmp, i32 %x, i32 %y
  ret i32 %sel
}

define internal i16 @smin16(i16 %x, i16 %y) #2 {
  %cmp = icmp slt i16 %x, %y
  %sel = select i1 %cmp, i16 %x, i16 %y
  ret i16 %sel
}

define internal i16 @smax16(i16 %x, i16 %y) #2 {
  %cmp = icmp sgt i16 %x, %y
  %sel = select i1 %cmp, i16 %x, i16 %y
  ret i16 %sel
}

define internal i8 @smin8(i8 %x, i8 %y) #2 {
  %cmp = icmp slt i8 %x, %y
  %sel = select i1 %cmp, i8 %x, i8 %y
  ret i8 %sel
}

define internal i8 @smax8(i8 %x, i8 %y) #2 {
  %cmp = icmp sgt i8 %x, %y
  %sel = select i1 %cmp, i8 %x, i8 %y
  ret i8 %sel
}

; 16 combinations

; 0: max(min(x, y), min(max(x, y), z))
; 1: max(min(x, y), min(max(y, x), z))
; 2: max(min(x, y), min(z, max(x, y)))
; 3: max(min(x, y), min(z, max(y, x)))
; 4: max(min(y, x), min(max(x, y), z))
; 5: max(min(y, x), min(max(y, x), z))
; 6: max(min(y, x), min(z, max(x, y)))
; 7: max(min(y, x), min(z, max(y, x)))
;
; + commute outermost max


; FIXME: In these cases we probably should have used scalar operations
; instead.

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_0:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_0(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smin(i32 %tmp1, i32 %z)
  %tmp3 = call i32 @smax(i32 %tmp0, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_1:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_1(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smin(i32 %tmp1, i32 %z)
  %tmp3 = call i32 @smax(i32 %tmp0, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_2:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_2(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smin(i32 %z, i32 %tmp1)
  %tmp3 = call i32 @smax(i32 %tmp0, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_3:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_3(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smin(i32 %z, i32 %tmp1)
  %tmp3 = call i32 @smax(i32 %tmp0, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_4:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_4(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smin(i32 %tmp1, i32 %z)
  %tmp3 = call i32 @smax(i32 %tmp0, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_5:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_5(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smin(i32 %tmp1, i32 %z)
  %tmp3 = call i32 @smax(i32 %tmp0, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_6:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_6(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smin(i32 %z, i32 %tmp1)
  %tmp3 = call i32 @smax(i32 %tmp0, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_7:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_7(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smin(i32 %z, i32 %tmp1)
  %tmp3 = call i32 @smax(i32 %tmp0, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_8:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_8(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smin(i32 %tmp1, i32 %z)
  %tmp3 = call i32 @smax(i32 %tmp2, i32 %tmp0)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_9:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_9(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smin(i32 %tmp1, i32 %z)
  %tmp3 = call i32 @smax(i32 %tmp2, i32 %tmp0)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_10:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_10(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smin(i32 %z, i32 %tmp1)
  %tmp3 = call i32 @smax(i32 %tmp2, i32 %tmp0)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_11:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_11(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smin(i32 %z, i32 %tmp1)
  %tmp3 = call i32 @smax(i32 %tmp2, i32 %tmp0)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_12:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_12(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smin(i32 %tmp1, i32 %z)
  %tmp3 = call i32 @smax(i32 %tmp2, i32 %tmp0)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_13:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_13(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smin(i32 %tmp1, i32 %z)
  %tmp3 = call i32 @smax(i32 %tmp2, i32 %tmp0)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_14:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_14(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smin(i32 %z, i32 %tmp1)
  %tmp3 = call i32 @smax(i32 %tmp2, i32 %tmp0)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_15:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_15(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smin(i32 %z, i32 %tmp1)
  %tmp3 = call i32 @smax(i32 %tmp2, i32 %tmp0)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; 16 combinations

; 16: min(max(x, y), max(min(x, y), z))
; 17: min(max(x, y), max(min(y, x), z))
; 18: min(max(x, y), max(z, min(x, y)))
; 19: min(max(x, y), max(z, min(y, x)))
; 20: min(max(y, x), max(min(x, y), z))
; 21: min(max(y, x), max(min(y, x), z))
; 22: min(max(y, x), max(z, min(x, y)))
; 23: min(max(y, x), max(z, min(y, x)))
;
; + commute outermost min

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_16:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_16(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smax(i32 %tmp0, i32 %z)
  %tmp3 = call i32 @smin(i32 %tmp1, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_17:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_17(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smax(i32 %tmp0, i32 %z)
  %tmp3 = call i32 @smin(i32 %tmp1, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_18:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_18(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smax(i32 %z, i32 %tmp0)
  %tmp3 = call i32 @smin(i32 %tmp1, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_19:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_19(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smax(i32 %z, i32 %tmp0)
  %tmp3 = call i32 @smin(i32 %tmp1, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_20:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_20(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smax(i32 %tmp0, i32 %z)
  %tmp3 = call i32 @smin(i32 %tmp1, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_21:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_21(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smax(i32 %tmp0, i32 %z)
  %tmp3 = call i32 @smin(i32 %tmp1, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_22:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_22(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smax(i32 %z, i32 %tmp0)
  %tmp3 = call i32 @smin(i32 %tmp1, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_23:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_23(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smax(i32 %z, i32 %tmp0)
  %tmp3 = call i32 @smin(i32 %tmp1, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_24:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_24(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smax(i32 %tmp0, i32 %z)
  %tmp3 = call i32 @smin(i32 %tmp2, i32 %tmp1)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_25:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_25(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smax(i32 %tmp0, i32 %z)
  %tmp3 = call i32 @smin(i32 %tmp1, i32 %tmp2)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_26:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_26(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smax(i32 %z, i32 %tmp0)
  %tmp3 = call i32 @smin(i32 %tmp2, i32 %tmp1)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_27:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_27(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smax(i32 %z, i32 %tmp0)
  %tmp3 = call i32 @smin(i32 %tmp2, i32 %tmp1)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_28:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_28(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smax(i32 %tmp0, i32 %z)
  %tmp3 = call i32 @smin(i32 %tmp2, i32 %tmp1)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_29:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_29(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smax(i32 %tmp0, i32 %z)
  %tmp3 = call i32 @smin(i32 %tmp2, i32 %tmp1)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_30:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_30(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smax(i32 %z, i32 %tmp0)
  %tmp3 = call i32 @smin(i32 %tmp2, i32 %tmp1)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_31:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_31(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %y, i32 %x)
  %tmp1 = call i32 @smax(i32 %y, i32 %x)
  %tmp2 = call i32 @smax(i32 %z, i32 %tmp0)
  %tmp3 = call i32 @smin(i32 %tmp2, i32 %tmp1)
  store i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; FIXME: Should keep scalar or not promote
; GCN-LABEL: {{^}}s_test_smed3_i16_pat_0:
; GCN: s_sext_i32_i16
; GCN: s_sext_i32_i16
; GCN: s_sext_i32_i16
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i16_pat_0(i16 addrspace(1)* %arg, [8 x i32], i16 %x, [8 x i32], i16 %y, [8 x i32], i16 %z) #1 {
bb:
  %tmp0 = call i16 @smin16(i16 %x, i16 %y)
  %tmp1 = call i16 @smax16(i16 %x, i16 %y)
  %tmp2 = call i16 @smin16(i16 %tmp1, i16 %z)
  %tmp3 = call i16 @smax16(i16 %tmp0, i16 %tmp2)
  store i16 %tmp3, i16 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i8_pat_0:
; GCN: s_sext_i32_i8
; GCN: s_sext_i32_i8
; GCN: s_sext_i32_i8
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i8_pat_0(i8 addrspace(1)* %arg, [8 x i32], i8 %x, [8 x i32], i8 %y, [8 x i32], i8 %z) #1 {
bb:
  %tmp0 = call i8 @smin8(i8 %x, i8 %y)
  %tmp1 = call i8 @smax8(i8 %x, i8 %y)
  %tmp2 = call i8 @smin8(i8 %tmp1, i8 %z)
  %tmp3 = call i8 @smax8(i8 %tmp0, i8 %tmp2)
  store i8 %tmp3, i8 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_0_multi_use_0:
; GCN-NOT: v_med3_i32
define amdgpu_kernel void @s_test_smed3_i32_pat_0_multi_use_0(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smin(i32 %tmp1, i32 %z)
  %tmp3 = call i32 @smax(i32 %tmp0, i32 %tmp2)
  store volatile i32 %tmp0, i32 addrspace(1)* %arg
  store volatile i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_0_multi_use_1:
; GCN-NOT: v_med3_i32
define amdgpu_kernel void @s_test_smed3_i32_pat_0_multi_use_1(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smin(i32 %tmp1, i32 %z)
  %tmp3 = call i32 @smax(i32 %tmp0, i32 %tmp2)
  store volatile i32 %tmp1, i32 addrspace(1)* %arg
  store volatile i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_0_multi_use_2:
; GCN-NOT: v_med3_i32
define amdgpu_kernel void @s_test_smed3_i32_pat_0_multi_use_2(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smin(i32 %tmp1, i32 %z)
  %tmp3 = call i32 @smax(i32 %tmp0, i32 %tmp2)
  store volatile i32 %tmp2, i32 addrspace(1)* %arg
  store volatile i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}s_test_smed3_i32_pat_0_multi_use_result:
; GCN: v_med3_i32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @s_test_smed3_i32_pat_0_multi_use_result(i32 addrspace(1)* %arg, i32 %x, i32 %y, i32 %z) #1 {
bb:
  %tmp0 = call i32 @smin(i32 %x, i32 %y)
  %tmp1 = call i32 @smax(i32 %x, i32 %y)
  %tmp2 = call i32 @smin(i32 %tmp1, i32 %z)
  %tmp3 = call i32 @smax(i32 %tmp0, i32 %tmp2)
  store volatile i32 %tmp3, i32 addrspace(1)* %arg
  store volatile i32 %tmp3, i32 addrspace(1)* %arg
  ret void
}

; GCN-LABEL: {{^}}v_test_smed3_i16_pat_0:
; SI: v_med3_i32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}

; FIXME: VI not matching med3
; VI: v_min_i16
; VI: v_max_i16
; VI: v_min_i16
; VI: v_max_i16

; GFX9: v_med3_i16 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
define amdgpu_kernel void @v_test_smed3_i16_pat_0(i16 addrspace(1)* %arg, i16 addrspace(1)* %out, i16 addrspace(1)* %a.ptr) #1 {
bb:
  %tid = call i32 @llvm.amdgcn.workitem.id.x()
  %gep0 = getelementptr inbounds i16, i16 addrspace(1)* %a.ptr, i32 %tid
  %gep1 = getelementptr inbounds i16, i16 addrspace(1)* %gep0, i32 3
  %gep2 = getelementptr inbounds i16, i16 addrspace(1)* %gep0, i32 8
  %out.gep = getelementptr inbounds i16, i16 addrspace(1)* %out, i32 %tid
  %x = load i16, i16 addrspace(1)* %gep0
  %y = load i16, i16 addrspace(1)* %gep1
  %z = load i16, i16 addrspace(1)* %gep2

  %tmp0 = call i16 @smin16(i16 %x, i16 %y)
  %tmp1 = call i16 @smax16(i16 %x, i16 %y)
  %tmp2 = call i16 @smin16(i16 %tmp1, i16 %z)
  %tmp3 = call i16 @smax16(i16 %tmp0, i16 %tmp2)
  store i16 %tmp3, i16 addrspace(1)* %out.gep
  ret void
}

; GCN-LABEL: {{^}}v_test_smed3_i16_pat_1:
; GFX9: v_med3_i16 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}

define amdgpu_kernel void @v_test_smed3_i16_pat_1(i16 addrspace(1)* %arg, i16 addrspace(1)* %out, i16 addrspace(1)* %a.ptr) #1 {
bb:
  %tid = call i32 @llvm.amdgcn.workitem.id.x()
  %gep0 = getelementptr inbounds i16, i16 addrspace(1)* %a.ptr, i32 %tid
  %gep1 = getelementptr inbounds i16, i16 addrspace(1)* %gep0, i32 3
  %gep2 = getelementptr inbounds i16, i16 addrspace(1)* %gep0, i32 8
  %out.gep = getelementptr inbounds i16, i16 addrspace(1)* %out, i32 %tid
  %x = load i16, i16 addrspace(1)* %gep0
  %y = load i16, i16 addrspace(1)* %gep1
  %z = load i16, i16 addrspace(1)* %gep2

  %tmp0 = call i16 @smin16(i16 %x, i16 %y)
  %tmp1 = call i16 @smax16(i16 %x, i16 %y)
  %tmp2 = call i16 @smax16(i16 %tmp0, i16 %z)
  %tmp3 = call i16 @smin16(i16 %tmp1, i16 %tmp2)
  store i16 %tmp3, i16 addrspace(1)* %out.gep
  ret void
}

attributes #0 = { nounwind readnone }
attributes #1 = { nounwind }
attributes #2 = { nounwind readnone alwaysinline }
