From d4751f35560321dfb38cd77b924e715b9ebf9203 Mon Sep 17 00:00:00 2001 From: Jay Foad Date: Fri, 29 May 2020 16:52:43 +0100 Subject: [PATCH] [AMDGPU] Precommit tests for D80813 --- llvm/test/CodeGen/AMDGPU/llvm.sin.ll | 70 ++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/llvm/test/CodeGen/AMDGPU/llvm.sin.ll b/llvm/test/CodeGen/AMDGPU/llvm.sin.ll index c5736cd..685f4eb 100644 --- a/llvm/test/CodeGen/AMDGPU/llvm.sin.ll +++ b/llvm/test/CodeGen/AMDGPU/llvm.sin.ll @@ -51,6 +51,20 @@ define amdgpu_kernel void @unsafe_sin_3x_f32(float addrspace(1)* %out, float %x) ret void } +; FUNC-LABEL: {{^}}fmf_sin_3x_f32: +; GCN: v_mul_f32 +; GCN: v_mul_f32 +; SICIVI: v_fract_f32 +; GFX9-NOT: v_fract_f32 +; GCN: v_sin_f32 +; GCN-NOT: v_sin_f32 +define amdgpu_kernel void @fmf_sin_3x_f32(float addrspace(1)* %out, float %x) #1 { + %y = fmul reassoc float 3.0, %x + %sin = call reassoc float @llvm.sin.f32(float %y) + store float %sin, float addrspace(1)* %out + ret void +} + ; FUNC-LABEL: {{^}}safe_sin_2x_f32: ; GCN: v_add_f32 ; GCN: v_mul_f32 @@ -80,6 +94,62 @@ define amdgpu_kernel void @unsafe_sin_2x_f32(float addrspace(1)* %out, float %x) ret void } +; FUNC-LABEL: {{^}}fmf_sin_2x_f32: +; GCN: v_add_f32 +; GCN: v_mul_f32 +; SICIVI: v_fract_f32 +; GFX9-NOT: v_fract_f32 +; GCN: v_sin_f32 +; GCN-NOT: v_sin_f32 +define amdgpu_kernel void @fmf_sin_2x_f32(float addrspace(1)* %out, float %x) #1 { + %y = fmul reassoc float 2.0, %x + %sin = call reassoc float @llvm.sin.f32(float %y) + store float %sin, float addrspace(1)* %out + ret void +} + +; FUNC-LABEL: {{^}}safe_sin_cancel_f32: +; GCN: v_mul_f32 +; GCN: v_mul_f32 +; SICIVI: v_fract_f32 +; GFX9-NOT: v_fract_f32 +; GCN: v_sin_f32 +; GCN-NOT: v_sin_f32 +define amdgpu_kernel void @safe_sin_cancel_f32(float addrspace(1)* %out, float %x) #1 { + %y = fmul float 0x401921FB60000000, %x + %sin = call float @llvm.sin.f32(float %y) + store float %sin, float addrspace(1)* %out + ret void +} + +; FUNC-LABEL: {{^}}unsafe_sin_cancel_f32: +; GCN-NOT: v_add_f32 +; GCN-NOT: v_mul_f32 +; SICIVI: v_fract_f32 +; GFX9-NOT: v_fract_f32 +; GCN: v_sin_f32 +; GCN-NOT: v_sin_f32 +define amdgpu_kernel void @unsafe_sin_cancel_f32(float addrspace(1)* %out, float %x) #2 { + %y = fmul float 0x401921FB60000000, %x + %sin = call float @llvm.sin.f32(float %y) + store float %sin, float addrspace(1)* %out + ret void +} + +; FUNC-LABEL: {{^}}fmf_sin_cancel_f32: +; GCN: v_mul_f32 +; GCN: v_mul_f32 +; SICIVI: v_fract_f32 +; GFX9-NOT: v_fract_f32 +; GCN: v_sin_f32 +; GCN-NOT: v_sin_f32 +define amdgpu_kernel void @fmf_sin_cancel_f32(float addrspace(1)* %out, float %x) #1 { + %y = fmul reassoc float 0x401921FB60000000, %x + %sin = call reassoc float @llvm.sin.f32(float %y) + store float %sin, float addrspace(1)* %out + ret void +} + ; FUNC-LABEL: {{^}}sin_v4f32: ; EG: SIN * T{{[0-9]+\.[XYZW], PV\.[XYZW]}} ; EG: SIN * T{{[0-9]+\.[XYZW], PV\.[XYZW]}} -- 2.7.4