Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/CodeGen/AMDGPU/strict_fadd.f32.ll
Show First 20 Lines • Show All 106 Lines • ▼ Show 20 Lines | ; GCN-NEXT: s_setpc_b64 s[30:31] | ||||
%val = call float @llvm.experimental.constrained.fadd.f32(float %x, float %fabs.y, metadata !"round.tonearest", metadata !"fpexcept.strict") | %val = call float @llvm.experimental.constrained.fadd.f32(float %x, float %fabs.y, metadata !"round.tonearest", metadata !"fpexcept.strict") | ||||
ret float %val | ret float %val | ||||
} | } | ||||
define float @v_constained_fadd_f32_fpexcept_strict_fneg_fabs_lhs(float %x, float %y) #0 { | define float @v_constained_fadd_f32_fpexcept_strict_fneg_fabs_lhs(float %x, float %y) #0 { | ||||
; GCN-LABEL: v_constained_fadd_f32_fpexcept_strict_fneg_fabs_lhs: | ; GCN-LABEL: v_constained_fadd_f32_fpexcept_strict_fneg_fabs_lhs: | ||||
; GCN: ; %bb.0: | ; GCN: ; %bb.0: | ||||
; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) | ; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) | ||||
; GCN-NEXT: v_add_f32_e64 v0, -|v0|, v1 | ; GCN-NEXT: v_sub_f32_e64 v0, v1, |v0| | ||||
; GCN-NEXT: s_setpc_b64 s[30:31] | ; GCN-NEXT: s_setpc_b64 s[30:31] | ||||
%fabs.x = call float @llvm.fabs.f32(float %x) | %fabs.x = call float @llvm.fabs.f32(float %x) | ||||
%neg.fabs.x = fneg float %fabs.x | %neg.fabs.x = fneg float %fabs.x | ||||
%val = call float @llvm.experimental.constrained.fadd.f32(float %neg.fabs.x, float %y, metadata !"round.tonearest", metadata !"fpexcept.strict") | %val = call float @llvm.experimental.constrained.fadd.f32(float %neg.fabs.x, float %y, metadata !"round.tonearest", metadata !"fpexcept.strict") | ||||
ret float %val | ret float %val | ||||
} | } | ||||
declare float @llvm.fabs.f32(float) #1 | declare float @llvm.fabs.f32(float) #1 | ||||
declare float @llvm.experimental.constrained.fadd.f32(float, float, metadata, metadata) #1 | declare float @llvm.experimental.constrained.fadd.f32(float, float, metadata, metadata) #1 | ||||
declare <2 x float> @llvm.experimental.constrained.fadd.v2f32(<2 x float>, <2 x float>, metadata, metadata) #1 | declare <2 x float> @llvm.experimental.constrained.fadd.v2f32(<2 x float>, <2 x float>, metadata, metadata) #1 | ||||
declare <3 x float> @llvm.experimental.constrained.fadd.v3f32(<3 x float>, <3 x float>, metadata, metadata) #1 | declare <3 x float> @llvm.experimental.constrained.fadd.v3f32(<3 x float>, <3 x float>, metadata, metadata) #1 | ||||
attributes #0 = { strictfp } | attributes #0 = { strictfp } | ||||
attributes #1 = { inaccessiblememonly nounwind willreturn } | attributes #1 = { inaccessiblememonly nounwind willreturn } |