blob: 97572e995f1559f71fbcd60cb0d882171421d138 [file] [edit]
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --filter-out "s_setreg_imm32_b32" --filter-out "shader" --version 6
; RUN: llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1250 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GCN,FAKE16 %s
; RUN: llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1250 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GCN,REAL16 %s
define amdgpu_ps float @v_sin_f32(float %src) #1 {
; GCN-LABEL: v_sin_f32:
; GCN: ; %bb.0:
; GCN: v_sin_f32_e32 v0, v0
%sin = call float @llvm.amdgcn.sin.f32(float %src) #0
ret float %sin
}
define amdgpu_ps float @s_sin_f32(float inreg %src) #1 {
; GCN-LABEL: s_sin_f32:
; GCN: ; %bb.0:
; GCN: v_sin_f32_e32 v0, s0
%sin = call float @llvm.amdgcn.sin.f32(float %src) #0
ret float %sin
}
define amdgpu_ps half @v_sin_f16(half %src) #1 {
; FAKE16-LABEL: v_sin_f16:
; FAKE16: ; %bb.0:
; FAKE16: v_sin_f16_e32 v0, v0
;
; REAL16-LABEL: v_sin_f16:
; REAL16: ; %bb.0:
; REAL16: v_sin_f16_e32 v0.l, v0.l
%sin = call half @llvm.amdgcn.sin.f16(half %src) #0
ret half %sin
}
define amdgpu_ps half @s_sin_f16(half inreg %src) #1 {
; FAKE16-LABEL: s_sin_f16:
; FAKE16: ; %bb.0:
; FAKE16: v_sin_f16_e32 v0, s0
;
; REAL16-LABEL: s_sin_f16:
; REAL16: ; %bb.0:
; REAL16: v_sin_f16_e32 v0.l, s0
%sin = call half @llvm.amdgcn.sin.f16(half %src) #0
ret half %sin
}
define amdgpu_ps float @v_cos_f32(float %src) #1 {
; GCN-LABEL: v_cos_f32:
; GCN: ; %bb.0:
; GCN: v_cos_f32_e32 v0, v0
%cos = call float @llvm.amdgcn.cos.f32(float %src) #0
ret float %cos
}
define amdgpu_ps float @s_cos_f32(float inreg %src) #1 {
; GCN-LABEL: s_cos_f32:
; GCN: ; %bb.0:
; GCN: v_cos_f32_e32 v0, s0
%cos = call float @llvm.amdgcn.cos.f32(float %src) #0
ret float %cos
}
define amdgpu_ps half @v_cos_f16(half %src) #1 {
; FAKE16-LABEL: v_cos_f16:
; FAKE16: ; %bb.0:
; FAKE16: v_cos_f16_e32 v0, v0
;
; REAL16-LABEL: v_cos_f16:
; REAL16: ; %bb.0:
; REAL16: v_cos_f16_e32 v0.l, v0.l
%cos = call half @llvm.amdgcn.cos.f16(half %src) #0
ret half %cos
}
define amdgpu_ps half @s_cos_f16(half inreg %src) #1 {
; FAKE16-LABEL: s_cos_f16:
; FAKE16: ; %bb.0:
; FAKE16: v_cos_f16_e32 v0, s0
;
; REAL16-LABEL: s_cos_f16:
; REAL16: ; %bb.0:
; REAL16: v_cos_f16_e32 v0.l, s0
%cos = call half @llvm.amdgcn.cos.f16(half %src) #0
ret half %cos
}
declare float @llvm.amdgcn.sin.f32(float) #0
declare half @llvm.amdgcn.sin.f16(half) #0
declare float @llvm.amdgcn.cos.f32(float) #0
declare half @llvm.amdgcn.cos.f16(half) #0
attributes #0 = { nounwind readnone }
attributes #1 = { nounwind }