llvm.amdgcn.rsq.legacy.ll revision de2d8694e25a814696358e95141f4b1aa4d8847e
1de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s 2de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 3de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainardeclare float @llvm.amdgcn.rsq.legacy(float) #0 4de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 5de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; FUNC-LABEL: {{^}}rsq_legacy_f32: 6de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; SI: v_rsq_legacy_f32_e32 {{v[0-9]+}}, {{s[0-9]+}} 7de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainardefine void @rsq_legacy_f32(float addrspace(1)* %out, float %src) #1 { 8de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar %rsq = call float @llvm.amdgcn.rsq.legacy(float %src) #0 9de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar store float %rsq, float addrspace(1)* %out, align 4 10de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar ret void 11de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar} 12de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 13de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; TODO: Really these should be constant folded 14de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; FUNC-LABEL: {{^}}rsq_legacy_f32_constant_4.0 15de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; SI: v_rsq_legacy_f32_e32 {{v[0-9]+}}, 4.0 16de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainardefine void @rsq_legacy_f32_constant_4.0(float addrspace(1)* %out) #1 { 17de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar %rsq = call float @llvm.amdgcn.rsq.legacy(float 4.0) #0 18de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar store float %rsq, float addrspace(1)* %out, align 4 19de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar ret void 20de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar} 21de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 22de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; FUNC-LABEL: {{^}}rsq_legacy_f32_constant_100.0 23de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; SI: v_rsq_legacy_f32_e32 {{v[0-9]+}}, 0x42c80000 24de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainardefine void @rsq_legacy_f32_constant_100.0(float addrspace(1)* %out) #1 { 25de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar %rsq = call float @llvm.amdgcn.rsq.legacy(float 100.0) #0 26de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar store float %rsq, float addrspace(1)* %out, align 4 27de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar ret void 28de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar} 29de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 30de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; FUNC-LABEL: {{^}}rsq_legacy_undef_f32: 31de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; SI-NOT: v_rsq_legacy_f32 32de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainardefine void @rsq_legacy_undef_f32(float addrspace(1)* %out) #1 { 33de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar %rsq = call float @llvm.amdgcn.rsq.legacy(float undef) 34de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar store float %rsq, float addrspace(1)* %out, align 4 35de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar ret void 36de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar} 37de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 38de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarattributes #0 = { nounwind readnone } 39de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarattributes #1 = { nounwind } 40