; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=tahiti < %s | FileCheck -check-prefix=GCN %s
; RUN: llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=tahiti < %s | FileCheck -check-prefix=GCN %s
; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=fiji < %s | FileCheck -check-prefix=GCN %s
; RUN: llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=fiji < %s | FileCheck -check-prefix=GCN %s

declare float @llvm.amdgcn.cubeid(float, float, float) #0
declare float @llvm.amdgcn.cubesc(float, float, float) #0
declare float @llvm.amdgcn.cubetc(float, float, float) #0
declare float @llvm.amdgcn.cubema(float, float, float) #0

define amdgpu_ps <4 x float> @cube_vvv(float %a, float %b, float %c) #1 {
; GCN-LABEL: cube_vvv:
; GCN:       ; %bb.0:
; GCN-NEXT:    v_cubeid_f32 v6, v0, v1, v2
; GCN-NEXT:    v_cubesc_f32 v4, v0, v1, v2
; GCN-NEXT:    v_cubetc_f32 v5, v0, v1, v2
; GCN-NEXT:    v_cubema_f32 v3, v0, v1, v2
; GCN-NEXT:    v_mov_b32_e32 v0, v6
; GCN-NEXT:    v_mov_b32_e32 v1, v4
; GCN-NEXT:    v_mov_b32_e32 v2, v5
; GCN-NEXT:    ; return to shader part epilog
  %cubeid = call float @llvm.amdgcn.cubeid(float %a, float %b, float %c)
  %cubesc = call float @llvm.amdgcn.cubesc(float %a, float %b, float %c)
  %cubetc = call float @llvm.amdgcn.cubetc(float %a, float %b, float %c)
  %cubema = call float @llvm.amdgcn.cubema(float %a, float %b, float %c)

  %vec0 = insertelement <4 x float> poison, float %cubeid, i32 0
  %vec1 = insertelement <4 x float> %vec0, float %cubesc, i32 1
  %vec2 = insertelement <4 x float> %vec1, float %cubetc, i32 2
  %vec3 = insertelement <4 x float> %vec2, float %cubema, i32 3
  ret <4 x float> %vec3
}

define amdgpu_ps <4 x float> @cube_sss(float inreg %a, float inreg %b, float inreg %c) #1 {
; GCN-LABEL: cube_sss:
; GCN:       ; %bb.0:
; GCN-NEXT:    v_mov_b32_e32 v3, s1
; GCN-NEXT:    v_mov_b32_e32 v4, s2
; GCN-NEXT:    v_cubeid_f32 v0, s0, v3, v4
; GCN-NEXT:    v_cubesc_f32 v1, s0, v3, v4
; GCN-NEXT:    v_cubetc_f32 v2, s0, v3, v4
; GCN-NEXT:    v_cubema_f32 v3, s0, v3, v4
; GCN-NEXT:    ; return to shader part epilog
  %cubeid = call float @llvm.amdgcn.cubeid(float %a, float %b, float %c)
  %cubesc = call float @llvm.amdgcn.cubesc(float %a, float %b, float %c)
  %cubetc = call float @llvm.amdgcn.cubetc(float %a, float %b, float %c)
  %cubema = call float @llvm.amdgcn.cubema(float %a, float %b, float %c)

  %vec0 = insertelement <4 x float> poison, float %cubeid, i32 0
  %vec1 = insertelement <4 x float> %vec0, float %cubesc, i32 1
  %vec2 = insertelement <4 x float> %vec1, float %cubetc, i32 2
  %vec3 = insertelement <4 x float> %vec2, float %cubema, i32 3
  ret <4 x float> %vec3
}

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