<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Sun, Oct 2, 2016 at 5:41 PM Hal Finkel <<a href="mailto:hfinkel@anl.gov">hfinkel@anl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">----- Original Message -----<br class="gmail_msg">
> From: "Eric Christopher" <<a href="mailto:echristo@gmail.com" class="gmail_msg" target="_blank">echristo@gmail.com</a>><br class="gmail_msg">
> To: "Hal Finkel" <<a href="mailto:hfinkel@anl.gov" class="gmail_msg" target="_blank">hfinkel@anl.gov</a>>, <a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="gmail_msg">
> Sent: Sunday, October 2, 2016 3:48:27 PM<br class="gmail_msg">
> Subject: Re: [llvm] r283060 - [PowerPC] Refactor soft-float support, and enable PPC64 soft float<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> Could you add some tests (both front and backend) that test with<br class="gmail_msg">
> +/-hard-float (in particular the latter of course) in the target<br class="gmail_msg">
> feature attributes? That you didn't have to change any testcases<br class="gmail_msg">
> here is a bit disheartening :)<br class="gmail_msg">
<br class="gmail_msg">
That's because the target feature is not really the public interface for the feature. For that, we use the function attribute use-soft-float, and there is some code in PPCTargetMachine.cpp that does this:<br class="gmail_msg">
<br class="gmail_msg">
  bool SoftFloat =<br class="gmail_msg">
      F.getFnAttribute("use-soft-float").getValueAsString() == "true";<br class="gmail_msg">
  // If the soft float attribute is set on the function turn on the soft float<br class="gmail_msg">
  // subtarget feature.<br class="gmail_msg">
  if (SoftFloat)<br class="gmail_msg">
    FS += FS.empty() ? "-hard-float" : ",-hard-float";<br class="gmail_msg">
<br class="gmail_msg">
(it just used to set +soft-float instead).<br class="gmail_msg">
<br class="gmail_msg"></blockquote><div><br></div><div>Ah, yes. Forgot about that translation like that. Lack of uniformity and all. :)</div><div><br></div><div>-eric</div><div><br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 -Hal<br class="gmail_msg">
<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> -eric<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> On Sat, Oct 1, 2016 at 7:19 PM Hal Finkel via llvm-commits <<br class="gmail_msg">
> <a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a> > wrote:<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> Author: hfinkel<br class="gmail_msg">
> Date: Sat Oct 1 21:10:20 2016<br class="gmail_msg">
> New Revision: 283060<br class="gmail_msg">
><br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=283060&view=rev" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project?rev=283060&view=rev</a><br class="gmail_msg">
> Log:<br class="gmail_msg">
> [PowerPC] Refactor soft-float support, and enable PPC64 soft float<br class="gmail_msg">
><br class="gmail_msg">
> This change enables soft-float for PowerPC64, and also makes<br class="gmail_msg">
> soft-float disable<br class="gmail_msg">
> all vector instruction sets for both 32-bit and 64-bit modes. This<br class="gmail_msg">
> latter part<br class="gmail_msg">
> is necessary because the PPC backend canonicalizes many Altivec<br class="gmail_msg">
> vector types to<br class="gmail_msg">
> floating-point types, and so soft-float breaks scalarization support<br class="gmail_msg">
> for many<br class="gmail_msg">
> operations. Both for embedded targets and for operating-system<br class="gmail_msg">
> kernels desiring<br class="gmail_msg">
> soft-float support, it seems reasonable that disabling hardware<br class="gmail_msg">
> floating-point<br class="gmail_msg">
> also disables vector instructions (embedded targets without hardware<br class="gmail_msg">
> floating<br class="gmail_msg">
> point support are unlikely to have Altivec, etc. and operating system<br class="gmail_msg">
> kernels<br class="gmail_msg">
> desiring not to use floating-point registers to lower syscall cost<br class="gmail_msg">
> are unlikely<br class="gmail_msg">
> to want to use vector registers either). If someone needs this to<br class="gmail_msg">
> work, we'll<br class="gmail_msg">
> need to change the fact that we promote many Altivec operations to<br class="gmail_msg">
> act on<br class="gmail_msg">
> v4f32. To make it possible to disable Altivec when soft-float is<br class="gmail_msg">
> enabled,<br class="gmail_msg">
> hardware floating-point support needs to be expressed as a positive<br class="gmail_msg">
> feature,<br class="gmail_msg">
> like the others, and not a negative feature, because target features<br class="gmail_msg">
> cannot<br class="gmail_msg">
> have dependencies on the disabling of some other feature. So<br class="gmail_msg">
> +soft-float has<br class="gmail_msg">
> now become -hard-float.<br class="gmail_msg">
><br class="gmail_msg">
> Fixes PR26970.<br class="gmail_msg">
><br class="gmail_msg">
> Modified:<br class="gmail_msg">
> llvm/trunk/lib/Target/PowerPC/PPC.td<br class="gmail_msg">
> llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp<br class="gmail_msg">
> llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp<br class="gmail_msg">
> llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h<br class="gmail_msg">
> llvm/trunk/lib/Target/PowerPC/PPCTargetMachine.cpp<br class="gmail_msg">
> llvm/trunk/test/CodeGen/PowerPC/ppcsoftops.ll<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/Target/PowerPC/PPC.td<br class="gmail_msg">
> URL:<br class="gmail_msg">
> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPC.td?rev=283060&r1=283059&r2=283060&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPC.td?rev=283060&r1=283059&r2=283060&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/Target/PowerPC/PPC.td (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/Target/PowerPC/PPC.td Sat Oct 1 21:10:20 2016<br class="gmail_msg">
> @@ -53,40 +53,52 @@ def DirectivePwr9: SubtargetFeature<"",<br class="gmail_msg">
><br class="gmail_msg">
> def Feature64Bit : SubtargetFeature<"64bit","Has64BitSupport",<br class="gmail_msg">
> "true",<br class="gmail_msg">
> "Enable 64-bit instructions">;<br class="gmail_msg">
> -def FeatureSoftFloat : SubtargetFeature<"soft-float",<br class="gmail_msg">
> "UseSoftFloat", "true",<br class="gmail_msg">
> - "Use software emulation for floating point">;<br class="gmail_msg">
> +def FeatureHardFloat : SubtargetFeature<"hard-float",<br class="gmail_msg">
> "HasHardFloat", "true",<br class="gmail_msg">
> + "Enable floating-point instructions">;<br class="gmail_msg">
> def Feature64BitRegs : SubtargetFeature<"64bitregs","Use64BitRegs",<br class="gmail_msg">
> "true",<br class="gmail_msg">
> "Enable 64-bit registers usage for ppc32 [beta]">;<br class="gmail_msg">
> def FeatureCRBits : SubtargetFeature<"crbits", "UseCRBits", "true",<br class="gmail_msg">
> "Use condition-register bits individually">;<br class="gmail_msg">
> def FeatureAltivec : SubtargetFeature<"altivec","HasAltivec", "true",<br class="gmail_msg">
> - "Enable Altivec instructions">;<br class="gmail_msg">
> + "Enable Altivec instructions",<br class="gmail_msg">
> + [FeatureHardFloat]>;<br class="gmail_msg">
> def FeatureSPE : SubtargetFeature<"spe","HasSPE", "true",<br class="gmail_msg">
> - "Enable SPE instructions">;<br class="gmail_msg">
> + "Enable SPE instructions",<br class="gmail_msg">
> + [FeatureHardFloat]>;<br class="gmail_msg">
> def FeatureMFOCRF : SubtargetFeature<"mfocrf","HasMFOCRF", "true",<br class="gmail_msg">
> "Enable the MFOCRF instruction">;<br class="gmail_msg">
> def FeatureFSqrt : SubtargetFeature<"fsqrt","HasFSQRT", "true",<br class="gmail_msg">
> - "Enable the fsqrt instruction">;<br class="gmail_msg">
> + "Enable the fsqrt instruction",<br class="gmail_msg">
> + [FeatureHardFloat]>;<br class="gmail_msg">
> def FeatureFCPSGN : SubtargetFeature<"fcpsgn", "HasFCPSGN", "true",<br class="gmail_msg">
> - "Enable the fcpsgn instruction">;<br class="gmail_msg">
> + "Enable the fcpsgn instruction",<br class="gmail_msg">
> + [FeatureHardFloat]>;<br class="gmail_msg">
> def FeatureFRE : SubtargetFeature<"fre", "HasFRE", "true",<br class="gmail_msg">
> - "Enable the fre instruction">;<br class="gmail_msg">
> + "Enable the fre instruction",<br class="gmail_msg">
> + [FeatureHardFloat]>;<br class="gmail_msg">
> def FeatureFRES : SubtargetFeature<"fres", "HasFRES", "true",<br class="gmail_msg">
> - "Enable the fres instruction">;<br class="gmail_msg">
> + "Enable the fres instruction",<br class="gmail_msg">
> + [FeatureHardFloat]>;<br class="gmail_msg">
> def FeatureFRSQRTE : SubtargetFeature<"frsqrte", "HasFRSQRTE",<br class="gmail_msg">
> "true",<br class="gmail_msg">
> - "Enable the frsqrte instruction">;<br class="gmail_msg">
> + "Enable the frsqrte instruction",<br class="gmail_msg">
> + [FeatureHardFloat]>;<br class="gmail_msg">
> def FeatureFRSQRTES : SubtargetFeature<"frsqrtes", "HasFRSQRTES",<br class="gmail_msg">
> "true",<br class="gmail_msg">
> - "Enable the frsqrtes instruction">;<br class="gmail_msg">
> + "Enable the frsqrtes instruction",<br class="gmail_msg">
> + [FeatureHardFloat]>;<br class="gmail_msg">
> def FeatureRecipPrec : SubtargetFeature<"recipprec", "HasRecipPrec",<br class="gmail_msg">
> "true",<br class="gmail_msg">
> "Assume higher precision reciprocal estimates">;<br class="gmail_msg">
> def FeatureSTFIWX : SubtargetFeature<"stfiwx","HasSTFIWX", "true",<br class="gmail_msg">
> - "Enable the stfiwx instruction">;<br class="gmail_msg">
> + "Enable the stfiwx instruction",<br class="gmail_msg">
> + [FeatureHardFloat]>;<br class="gmail_msg">
> def FeatureLFIWAX : SubtargetFeature<"lfiwax","HasLFIWAX", "true",<br class="gmail_msg">
> - "Enable the lfiwax instruction">;<br class="gmail_msg">
> + "Enable the lfiwax instruction",<br class="gmail_msg">
> + [FeatureHardFloat]>;<br class="gmail_msg">
> def FeatureFPRND : SubtargetFeature<"fprnd", "HasFPRND", "true",<br class="gmail_msg">
> - "Enable the fri[mnpz] instructions">;<br class="gmail_msg">
> + "Enable the fri[mnpz] instructions",<br class="gmail_msg">
> + [FeatureHardFloat]>;<br class="gmail_msg">
> def FeatureFPCVT : SubtargetFeature<"fpcvt", "HasFPCVT", "true",<br class="gmail_msg">
> - "Enable fc[ft]* (unsigned and single-precision) and lfiwzx<br class="gmail_msg">
> instructions">;<br class="gmail_msg">
> + "Enable fc[ft]* (unsigned and single-precision) and lfiwzx<br class="gmail_msg">
> instructions",<br class="gmail_msg">
> + [FeatureHardFloat]>;<br class="gmail_msg">
> def FeatureISEL : SubtargetFeature<"isel","HasISEL", "true",<br class="gmail_msg">
> "Enable the isel instruction">;<br class="gmail_msg">
> def FeatureBPERMD : SubtargetFeature<"bpermd", "HasBPERMD", "true",<br class="gmail_msg">
> @@ -112,7 +124,8 @@ def FeaturePPC4xx : SubtargetFeature<<br class="gmail_msg">
> def FeaturePPC6xx : SubtargetFeature<"ppc6xx", "IsPPC6xx", "true",<br class="gmail_msg">
> "Enable PPC 6xx instructions">;<br class="gmail_msg">
> def FeatureQPX : SubtargetFeature<"qpx","HasQPX", "true",<br class="gmail_msg">
> - "Enable QPX instructions">;<br class="gmail_msg">
> + "Enable QPX instructions",<br class="gmail_msg">
> + [FeatureHardFloat]>;<br class="gmail_msg">
> def FeatureVSX : SubtargetFeature<"vsx","HasVSX", "true",<br class="gmail_msg">
> "Enable VSX instructions",<br class="gmail_msg">
> [FeatureAltivec]>;<br class="gmail_msg">
> @@ -282,7 +295,8 @@ include "PPCInstrInfo.td"<br class="gmail_msg">
> // PowerPC processors supported.<br class="gmail_msg">
> //<br class="gmail_msg">
><br class="gmail_msg">
> -def : Processor<"generic", G3Itineraries, [Directive32,<br class="gmail_msg">
> FeatureMFTB]>;<br class="gmail_msg">
> +def : Processor<"generic", G3Itineraries, [Directive32,<br class="gmail_msg">
> FeatureHardFloat,<br class="gmail_msg">
> + FeatureMFTB]>;<br class="gmail_msg">
> def : ProcessorModel<"440", PPC440Model, [Directive440, FeatureISEL,<br class="gmail_msg">
> FeatureFRES, FeatureFRSQRTE,<br class="gmail_msg">
> FeatureICBT, FeatureBookE,<br class="gmail_msg">
> @@ -291,8 +305,8 @@ def : ProcessorModel<"450", PPC440Model,<br class="gmail_msg">
> FeatureFRES, FeatureFRSQRTE,<br class="gmail_msg">
> FeatureICBT, FeatureBookE,<br class="gmail_msg">
> FeatureMSYNC, FeatureMFTB]>;<br class="gmail_msg">
> -def : Processor<"601", G3Itineraries, [Directive601]>;<br class="gmail_msg">
> -def : Processor<"602", G3Itineraries, [Directive602,<br class="gmail_msg">
> +def : Processor<"601", G3Itineraries, [Directive601,<br class="gmail_msg">
> FeatureHardFloat]>;<br class="gmail_msg">
> +def : Processor<"602", G3Itineraries, [Directive602,<br class="gmail_msg">
> FeatureHardFloat,<br class="gmail_msg">
> FeatureMFTB]>;<br class="gmail_msg">
> def : Processor<"603", G3Itineraries, [Directive603,<br class="gmail_msg">
> FeatureFRES, FeatureFRSQRTE,<br class="gmail_msg">
> @@ -406,7 +420,10 @@ def : ProcessorModel<"pwr7", P7Model, Pr<br class="gmail_msg">
> def : ProcessorModel<"pwr8", P8Model,<br class="gmail_msg">
> ProcessorFeatures.Power8FeatureList>;<br class="gmail_msg">
> // FIXME: Same as P8 until the POWER9 scheduling info is available<br class="gmail_msg">
> def : ProcessorModel<"pwr9", P8Model,<br class="gmail_msg">
> ProcessorFeatures.Power9FeatureList>;<br class="gmail_msg">
> -def : Processor<"ppc", G3Itineraries, [Directive32, FeatureMFTB]>;<br class="gmail_msg">
> +def : Processor<"ppc", G3Itineraries, [Directive32,<br class="gmail_msg">
> FeatureHardFloat,<br class="gmail_msg">
> + FeatureMFTB]>;<br class="gmail_msg">
> +def : Processor<"ppc32", G3Itineraries, [Directive32,<br class="gmail_msg">
> FeatureHardFloat,<br class="gmail_msg">
> + FeatureMFTB]>;<br class="gmail_msg">
> def : ProcessorModel<"ppc64", G5Model,<br class="gmail_msg">
> [Directive64, FeatureAltivec,<br class="gmail_msg">
> FeatureMFOCRF, FeatureFSqrt, FeatureFRES,<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp<br class="gmail_msg">
> URL:<br class="gmail_msg">
> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp?rev=283060&r1=283059&r2=283060&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp?rev=283060&r1=283059&r2=283060&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp Sat Oct 1<br class="gmail_msg">
> 21:10:20 2016<br class="gmail_msg">
> @@ -3175,7 +3175,7 @@ SDValue PPCTargetLowering::LowerFormalAr<br class="gmail_msg">
> };<br class="gmail_msg">
><br class="gmail_msg">
> const unsigned Num_GPR_Regs = array_lengthof(GPR);<br class="gmail_msg">
> - const unsigned Num_FPR_Regs = 13;<br class="gmail_msg">
> + const unsigned Num_FPR_Regs = useSoftFloat() ? 0 : 13;<br class="gmail_msg">
> const unsigned Num_VR_Regs = array_lengthof(VR);<br class="gmail_msg">
> const unsigned Num_QFPR_Regs = Num_FPR_Regs;<br class="gmail_msg">
><br class="gmail_msg">
> @@ -3588,7 +3588,7 @@ SDValue PPCTargetLowering::LowerFormalAr<br class="gmail_msg">
> };<br class="gmail_msg">
><br class="gmail_msg">
> const unsigned Num_GPR_Regs = array_lengthof(GPR_32);<br class="gmail_msg">
> - const unsigned Num_FPR_Regs = 13;<br class="gmail_msg">
> + const unsigned Num_FPR_Regs = useSoftFloat() ? 0 : 13;<br class="gmail_msg">
> const unsigned Num_VR_Regs = array_lengthof( VR);<br class="gmail_msg">
><br class="gmail_msg">
> unsigned GPR_idx = 0, FPR_idx = 0, VR_idx = 0;<br class="gmail_msg">
> @@ -10564,7 +10564,7 @@ SDValue PPCTargetLowering::combineFPToIn<br class="gmail_msg">
> N->getOpcode() == ISD::UINT_TO_FP) &&<br class="gmail_msg">
> "Need an int -> FP conversion node here");<br class="gmail_msg">
><br class="gmail_msg">
> - if (!Subtarget.has64BitSupport())<br class="gmail_msg">
> + if (useSoftFloat() || !Subtarget.has64BitSupport())<br class="gmail_msg">
> return SDValue();<br class="gmail_msg">
><br class="gmail_msg">
> SelectionDAG &DAG = DCI.DAG;<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp<br class="gmail_msg">
> URL:<br class="gmail_msg">
> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp?rev=283060&r1=283059&r2=283060&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp?rev=283060&r1=283059&r2=283060&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp Sat Oct 1 21:10:20<br class="gmail_msg">
> 2016<br class="gmail_msg">
> @@ -62,7 +62,7 @@ void PPCSubtarget::initializeEnvironment<br class="gmail_msg">
> Has64BitSupport = false;<br class="gmail_msg">
> Use64BitRegs = false;<br class="gmail_msg">
> UseCRBits = false;<br class="gmail_msg">
> - UseSoftFloat = false;<br class="gmail_msg">
> + HasHardFloat = false;<br class="gmail_msg">
> HasAltivec = false;<br class="gmail_msg">
> HasSPE = false;<br class="gmail_msg">
> HasQPX = false;<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h<br class="gmail_msg">
> URL:<br class="gmail_msg">
> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h?rev=283060&r1=283059&r2=283060&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h?rev=283060&r1=283059&r2=283060&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h Sat Oct 1 21:10:20<br class="gmail_msg">
> 2016<br class="gmail_msg">
> @@ -91,7 +91,7 @@ protected:<br class="gmail_msg">
> bool Has64BitSupport;<br class="gmail_msg">
> bool Use64BitRegs;<br class="gmail_msg">
> bool UseCRBits;<br class="gmail_msg">
> - bool UseSoftFloat;<br class="gmail_msg">
> + bool HasHardFloat;<br class="gmail_msg">
> bool IsPPC64;<br class="gmail_msg">
> bool HasAltivec;<br class="gmail_msg">
> bool HasSPE;<br class="gmail_msg">
> @@ -205,7 +205,7 @@ public:<br class="gmail_msg">
> /// instructions, regardless of whether we are in 32-bit or 64-bit<br class="gmail_msg">
> mode.<br class="gmail_msg">
> bool has64BitSupport() const { return Has64BitSupport; }<br class="gmail_msg">
> // useSoftFloat - Return true if soft-float option is turned on.<br class="gmail_msg">
> - bool useSoftFloat() const { return UseSoftFloat; }<br class="gmail_msg">
> + bool useSoftFloat() const { return !HasHardFloat; }<br class="gmail_msg">
><br class="gmail_msg">
> /// use64BitRegs - Return true if in 64-bit mode or if we should use<br class="gmail_msg">
> 64-bit<br class="gmail_msg">
> /// registers in 32-bit mode when possible. This can only true if<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/Target/PowerPC/PPCTargetMachine.cpp<br class="gmail_msg">
> URL:<br class="gmail_msg">
> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCTargetMachine.cpp?rev=283060&r1=283059&r2=283060&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCTargetMachine.cpp?rev=283060&r1=283059&r2=283060&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/Target/PowerPC/PPCTargetMachine.cpp (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/Target/PowerPC/PPCTargetMachine.cpp Sat Oct 1<br class="gmail_msg">
> 21:10:20 2016<br class="gmail_msg">
> @@ -268,7 +268,7 @@ PPCTargetMachine::getSubtargetImpl(const<br class="gmail_msg">
> // If the soft float attribute is set on the function turn on the<br class="gmail_msg">
> soft float<br class="gmail_msg">
> // subtarget feature.<br class="gmail_msg">
> if (SoftFloat)<br class="gmail_msg">
> - FS += FS.empty() ? "+soft-float" : ",+soft-float";<br class="gmail_msg">
> + FS += FS.empty() ? "-hard-float" : ",-hard-float";<br class="gmail_msg">
><br class="gmail_msg">
> auto &I = SubtargetMap[CPU + FS];<br class="gmail_msg">
> if (!I) {<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/test/CodeGen/PowerPC/ppcsoftops.ll<br class="gmail_msg">
> URL:<br class="gmail_msg">
> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/ppcsoftops.ll?rev=283060&r1=283059&r2=283060&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/ppcsoftops.ll?rev=283060&r1=283059&r2=283060&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/test/CodeGen/PowerPC/ppcsoftops.ll (original)<br class="gmail_msg">
> +++ llvm/trunk/test/CodeGen/PowerPC/ppcsoftops.ll Sat Oct 1 21:10:20<br class="gmail_msg">
> 2016<br class="gmail_msg">
> @@ -1,4 +1,6 @@<br class="gmail_msg">
> ; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-linux-gnu<br class="gmail_msg">
> -O0 < %s | FileCheck %s<br class="gmail_msg">
> +; RUN: llc -verify-machineinstrs<br class="gmail_msg">
> -mtriple=powerpc64-unknown-linux-gnu -O0 < %s | FileCheck %s<br class="gmail_msg">
> +; RUN: llc -verify-machineinstrs<br class="gmail_msg">
> -mtriple=powerpc64le-unknown-linux-gnu -O0 < %s | FileCheck %s<br class="gmail_msg">
><br class="gmail_msg">
> ; Testing operations in soft-float mode<br class="gmail_msg">
> define double @foo() #0 {<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> _______________________________________________<br class="gmail_msg">
> llvm-commits mailing list<br class="gmail_msg">
> <a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="gmail_msg">
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="gmail_msg">
><br class="gmail_msg">
<br class="gmail_msg">
--<br class="gmail_msg">
Hal Finkel<br class="gmail_msg">
Lead, Compiler Technology and Programming Languages<br class="gmail_msg">
Leadership Computing Facility<br class="gmail_msg">
Argonne National Laboratory<br class="gmail_msg">
</blockquote></div></div>