Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/test/CodeGen/AMDGPU/fneg-combines.ll
Show First 20 Lines • Show All 1,360 Lines • ▼ Show 20 Lines | |||||
; GCN: {{buffer|flat}}_load_dword [[A:v[0-9]+]] | ; GCN: {{buffer|flat}}_load_dword [[A:v[0-9]+]] | ||||
; GCN: {{buffer|flat}}_load_dword [[B:v[0-9]+]] | ; GCN: {{buffer|flat}}_load_dword [[B:v[0-9]+]] | ||||
; GCN: {{buffer|flat}}_load_dword [[C:v[0-9]+]] | ; GCN: {{buffer|flat}}_load_dword [[C:v[0-9]+]] | ||||
; GCN-SAFE: v_mac_f32_e32 [[C]], [[A]], [[B]] | ; GCN-SAFE: v_mac_f32_e32 [[C]], [[A]], [[B]] | ||||
; GCN-SAFE: v_xor_b32_e32 [[NEG_MAD:v[0-9]+]], 0x80000000, [[C]] | ; GCN-SAFE: v_xor_b32_e32 [[NEG_MAD:v[0-9]+]], 0x80000000, [[C]] | ||||
; GCN-SAFE-NEXT: v_mul_f32_e32 [[MUL:v[0-9]+]], 4.0, [[C]] | ; GCN-SAFE-NEXT: v_mul_f32_e32 [[MUL:v[0-9]+]], 4.0, [[C]] | ||||
; GCN-NSZ: v_mad_f32 [[NEG_MAD:v[0-9]+]], -[[A]], [[B]], -[[C]] | ; GCN-NSZ: v_mad_f32 [[NEG_MAD:v[0-9]+]], [[A]], -[[B]], -[[C]] | ||||
; GCN-NSZ-NEXT: v_mul_f32_e32 [[MUL:v[0-9]+]], -4.0, [[NEG_MAD]] | ; GCN-NSZ-NEXT: v_mul_f32_e32 [[MUL:v[0-9]+]], -4.0, [[NEG_MAD]] | ||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[NEG_MAD]] | ; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[NEG_MAD]] | ||||
; GCN-NEXT: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[MUL]] | ; GCN-NEXT: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[MUL]] | ||||
define amdgpu_kernel void @v_fneg_fmad_multi_use_fmad_f32(float addrspace(1)* %out, float addrspace(1)* %a.ptr, float addrspace(1)* %b.ptr, float addrspace(1)* %c.ptr) #0 { | define amdgpu_kernel void @v_fneg_fmad_multi_use_fmad_f32(float addrspace(1)* %out, float addrspace(1)* %a.ptr, float addrspace(1)* %b.ptr, float addrspace(1)* %c.ptr) #0 { | ||||
%tid = call i32 @llvm.amdgcn.workitem.id.x() | %tid = call i32 @llvm.amdgcn.workitem.id.x() | ||||
%tid.ext = sext i32 %tid to i64 | %tid.ext = sext i32 %tid to i64 | ||||
%a.gep = getelementptr inbounds float, float addrspace(1)* %a.ptr, i64 %tid.ext | %a.gep = getelementptr inbounds float, float addrspace(1)* %a.ptr, i64 %tid.ext | ||||
▲ Show 20 Lines • Show All 1,124 Lines • Show Last 20 Lines |