[PATCH] Add missing builtins to the PPC back end for ABI compliance (vol. 2)
Eric Christopher
echristo at gmail.com
Wed Jul 1 10:49:59 PDT 2015
One inline comment and then LGTM.
-eric
REPOSITORY
rL LLVM
================
Comment at: test/CodeGen/PowerPC/vsx-elementary-arith.ll:121-136
@@ +120,18 @@
+; Function Attrs: nounwind
+define void @emit_xvrsqrte() #0 {
+entry:
+; CHECK-LABEL: @emit_xvrsqrte
+ %vf = alloca <4 x float>, align 16
+ %vfr = alloca <4 x float>, align 16
+ %vd = alloca <2 x double>, align 16
+ %vdr = alloca <2 x double>, align 16
+ %0 = load <4 x float>, <4 x float>* %vf, align 16
+ %1 = call <4 x float> @llvm.ppc.vsx.xvrsqrtesp(<4 x float> %0)
+; CHECK: xvrsqrtesp {{[0-9]+}}, {{[0-9]+}}
+ store <4 x float> %1, <4 x float>* %vfr, align 16
+ %2 = load <2 x double>, <2 x double>* %vd, align 16
+ %3 = call <2 x double> @llvm.ppc.vsx.xvrsqrtedp(<2 x double> %2)
+; CHECK: xvrsqrtedp {{[0-9]+}}, {{[0-9]+}}
+ store <2 x double> %3, <2 x double>* %vdr, align 16
+ ret void
+}
----------------
Hrm. I'd suggest running this through the optimizer but since it's just using locals that don't have external visibility it might not work. Though if the instruction selector ever does any DCE on allocas then there's going to be a problem here. Might want to have it take arguments and return something?
http://reviews.llvm.org/D10874
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
More information about the llvm-commits
mailing list