brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · 7356b7a Raw
75 lines · plain
1; RUN: llc -mtriple=amdgcn < %s | FileCheck -check-prefix=GCN %s2; RUN: llc -mtriple=amdgcn -mcpu=tonga -mattr=-flat-for-global < %s  | FileCheck -check-prefix=GCN %s3 4declare float @llvm.fabs.f32(float) #05declare float @llvm.copysign.f32(float, float) #06declare double @llvm.fabs.f64(double) #07declare i32 @llvm.amdgcn.frexp.exp.i32.f32(float) #08declare i32 @llvm.amdgcn.frexp.exp.i32.f64(double) #09 10; GCN-LABEL: {{^}}s_test_frexp_exp_f32:11; GCN: v_frexp_exp_i32_f32_e32 {{v[0-9]+}}, {{s[0-9]+}}12define amdgpu_kernel void @s_test_frexp_exp_f32(ptr addrspace(1) %out, float %src) #1 {13  %frexp.exp = call i32 @llvm.amdgcn.frexp.exp.i32.f32(float %src)14  store i32 %frexp.exp, ptr addrspace(1) %out15  ret void16}17 18; GCN-LABEL: {{^}}s_test_fabs_frexp_exp_f32:19; GCN: v_frexp_exp_i32_f32_e32 {{v[0-9]+}}, {{s[0-9]+}}20define amdgpu_kernel void @s_test_fabs_frexp_exp_f32(ptr addrspace(1) %out, float %src) #1 {21  %fabs.src = call float @llvm.fabs.f32(float %src)22  %frexp.exp = call i32 @llvm.amdgcn.frexp.exp.i32.f32(float %fabs.src)23  store i32 %frexp.exp, ptr addrspace(1) %out24  ret void25}26 27; GCN-LABEL: {{^}}s_test_fneg_fabs_frexp_exp_f32:28; GCN: v_frexp_exp_i32_f32_e32 {{v[0-9]+}}, {{s[0-9]+}}29define amdgpu_kernel void @s_test_fneg_fabs_frexp_exp_f32(ptr addrspace(1) %out, float %src) #1 {30  %fabs.src = call float @llvm.fabs.f32(float %src)31  %fneg.fabs.src = fneg float %fabs.src32  %frexp.exp = call i32 @llvm.amdgcn.frexp.exp.i32.f32(float %fneg.fabs.src)33  store i32 %frexp.exp, ptr addrspace(1) %out34  ret void35}36 37; GCN-LABEL: {{^}}s_test_copysign_frexp_exp_f32:38; GCN: v_frexp_exp_i32_f32_e32 {{v[0-9]+}}, {{s[0-9]+}}39define amdgpu_kernel void @s_test_copysign_frexp_exp_f32(ptr addrspace(1) %out, float %src, float %sign) #1 {40  %copysign = call float @llvm.copysign.f32(float %src, float %sign)41  %frexp.exp = call i32 @llvm.amdgcn.frexp.exp.i32.f32(float %copysign)42  store i32 %frexp.exp, ptr addrspace(1) %out43  ret void44}45 46; GCN-LABEL: {{^}}s_test_frexp_exp_f64:47; GCN: v_frexp_exp_i32_f64_e32 {{v[0-9]+}}, {{s\[[0-9]+:[0-9]+\]}}48define amdgpu_kernel void @s_test_frexp_exp_f64(ptr addrspace(1) %out, double %src) #1 {49  %frexp.exp = call i32 @llvm.amdgcn.frexp.exp.i32.f64(double %src)50  store i32 %frexp.exp, ptr addrspace(1) %out51  ret void52}53 54; GCN-LABEL: {{^}}s_test_fabs_frexp_exp_f64:55; GCN: v_frexp_exp_i32_f64_e32 {{v[0-9]+}}, {{s\[[0-9]+:[0-9]+\]}}56define amdgpu_kernel void @s_test_fabs_frexp_exp_f64(ptr addrspace(1) %out, double %src) #1 {57  %fabs.src = call double @llvm.fabs.f64(double %src)58  %frexp.exp = call i32 @llvm.amdgcn.frexp.exp.i32.f64(double %fabs.src)59  store i32 %frexp.exp, ptr addrspace(1) %out60  ret void61}62 63; GCN-LABEL: {{^}}s_test_fneg_fabs_frexp_exp_f64:64; GCN: v_frexp_exp_i32_f64_e32 {{v[0-9]+}}, {{s\[[0-9]+:[0-9]+\]}}65define amdgpu_kernel void @s_test_fneg_fabs_frexp_exp_f64(ptr addrspace(1) %out, double %src) #1 {66  %fabs.src = call double @llvm.fabs.f64(double %src)67  %fneg.fabs.src = fneg double %fabs.src68  %frexp.exp = call i32 @llvm.amdgcn.frexp.exp.i32.f64(double %fneg.fabs.src)69  store i32 %frexp.exp, ptr addrspace(1) %out70  ret void71}72 73attributes #0 = { nounwind readnone }74attributes #1 = { nounwind }75