Follow-up commit to https://reviews.llvm.org/D57359. (r352668)
This adds IRTranslator support for recognising a @llvm.sqrt intrinsic and
translating it into a G_FSQRT.
https://reviews.llvm.org/D57360
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352670
91177308-0d34-0410-b5e6-
96231b3b80d8
.addDef(getOrCreateVReg(CI))
.addUse(getOrCreateVReg(*CI.getArgOperand(0)));
return true;
+ case Intrinsic::sqrt:
+ MIRBuilder.buildInstr(TargetOpcode::G_FSQRT)
+ .addDef(getOrCreateVReg(CI))
+ .addUse(getOrCreateVReg(*CI.getArgOperand(0)));
+ return true;
}
return false;
}
%y = call float @llvm.sin.f32(float %x)
ret float %y
}
+
+declare float @llvm.sqrt.f32(float)
+define float @test_sqrt_f32(float %x) {
+ ; CHECK-LABEL: name: test_sqrt_f32
+ ; CHECK: %{{[0-9]+}}:_(s32) = G_FSQRT %{{[0-9]+}}
+ %y = call float @llvm.sqrt.f32(float %x)
+ ret float %y
+}