diff options
-rw-r--r-- | llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll b/llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll index 9abb489f1ad..ca5dd63bd5c 100644 --- a/llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll +++ b/llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll @@ -769,6 +769,16 @@ define float @cos_fneg_f32(float %x) { ret float %cos } +define float @cos_unary_fneg_f32(float %x) { +; CHECK-LABEL: @cos_unary_fneg_f32( +; CHECK-NEXT: [[COS:%.*]] = call float @llvm.amdgcn.cos.f32(float [[X:%.*]]) +; CHECK-NEXT: ret float [[COS]] +; + %x.fneg = fneg float %x + %cos = call float @llvm.amdgcn.cos.f32(float %x.fneg) + ret float %cos +} + define float @cos_fabs_f32(float %x) { ; CHECK-LABEL: @cos_fabs_f32( ; CHECK-NEXT: [[COS:%.*]] = call float @llvm.amdgcn.cos.f32(float [[X:%.*]]) @@ -790,6 +800,17 @@ define float @cos_fabs_fneg_f32(float %x) { ret float %cos } +define float @cos_fabs_unary_fneg_f32(float %x) { +; CHECK-LABEL: @cos_fabs_unary_fneg_f32( +; CHECK-NEXT: [[COS:%.*]] = call float @llvm.amdgcn.cos.f32(float [[X:%.*]]) +; CHECK-NEXT: ret float [[COS]] +; + %x.fabs = call float @llvm.fabs.f32(float %x) + %x.fabs.fneg = fneg float %x.fabs + %cos = call float @llvm.amdgcn.cos.f32(float %x.fabs.fneg) + ret float %cos +} + ; -------------------------------------------------------------------- ; llvm.amdgcn.cvt.pkrtz ; -------------------------------------------------------------------- |