[llvm-commits] [llvm] r89700 - in /llvm/trunk: lib/Target/ARM/ARMInstrVFP.td lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp test/CodeGen/ARM/2009-11-07-SubRegAsmPrinting.ll test/CodeGen/ARM/fpconsts.ll test/CodeGen/Thumb2/cross-rc-coalescing-2.ll

Jim Grosbach grosbach at apple.com
Mon Nov 23 13:51:40 PST 2009


Well, we still need to check to make sure the immediate is encodable.  
The legal range of constant values is the same as it was for the fconst 
[ds] mnemonics. I kept the rest the same as before to make sure that  
stayed true. What's a better way to do that and also enable  
simplifying the code in the asm printer?

On Nov 23, 2009, at 1:30 PM, Evan Cheng wrote:

> Thanks. But rather than converting to FP at asm printing time, could  
> we just select it to a FP imm node?
>
> Evan
>
> On Nov 23, 2009, at 1:08 PM, Jim Grosbach wrote:
>
>>
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp (original)
>> +++ llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp Mon Nov  
>> 23 15:08:25 2009
>> @@ -998,7 +998,7 @@
>>
>> void ARMAsmPrinter::printVFPf32ImmOperand(const MachineInstr *MI,  
>> int OpNum) {
>>  const ConstantFP *FP = MI->getOperand(OpNum).getFPImm();
>> -  O << '#' << ARM::getVFPf32Imm(FP->getValueAPF());
>> +  O << '#' << FP->getValueAPF().convertToFloat();
>>  if (VerboseAsm) {
>>    O.PadToColumn(MAI->getCommentColumn());
>>    O << MAI->getCommentString() << ' ';
>> @@ -1008,7 +1008,7 @@
>>
>> void ARMAsmPrinter::printVFPf64ImmOperand(const MachineInstr *MI,  
>> int OpNum) {
>>  const ConstantFP *FP = MI->getOperand(OpNum).getFPImm();
>> -  O << '#' << ARM::getVFPf64Imm(FP->getValueAPF());
>> +  O << '#' << FP->getValueAPF().convertToDouble();
>>  if (VerboseAsm) {
>>    O.PadToColumn(MAI->getCommentColumn());
>>    O << MAI->getCommentString() << ' ';
>>
>> Modified: llvm/trunk/test/CodeGen/ARM/2009-11-07-SubRegAsmPrinting.ll
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/2009-11-07-SubRegAsmPrinting.ll?rev=89700&r1=89699&r2=89700&view=diff
>>
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- llvm/trunk/test/CodeGen/ARM/2009-11-07-SubRegAsmPrinting.ll  
>> (original)
>> +++ llvm/trunk/test/CodeGen/ARM/2009-11-07-SubRegAsmPrinting.ll Mon  
>> Nov 23 15:08:25 2009
>> @@ -13,7 +13,7 @@
>>  %4 = fadd float 0.000000e+00, %3                ; <float> [#uses=1]
>>  %5 = fsub float 1.000000e+00, %4                ; <float> [#uses=1]
>> ; CHECK: foo:
>> -; CHECK: fconsts s{{[0-9]+}}, #112
>> +; CHECK: vmov.f32 s{{[0-9]+}}, #1.000000e+00
>>  %6 = fsub float 1.000000e+00, undef             ; <float> [#uses=2]
>>  %7 = fsub float %2, undef                       ; <float> [#uses=1]
>>  %8 = fsub float 0.000000e+00, undef             ; <float> [#uses=3]
>>
>> Modified: llvm/trunk/test/CodeGen/ARM/fpconsts.ll
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/fpconsts.ll?rev=89700&r1=89699&r2=89700&view=diff
>>
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- llvm/trunk/test/CodeGen/ARM/fpconsts.ll (original)
>> +++ llvm/trunk/test/CodeGen/ARM/fpconsts.ll Mon Nov 23 15:08:25 2009
>> @@ -3,7 +3,7 @@
>> define arm_apcscc float @t1(float %x) nounwind readnone optsize {
>> entry:
>> ; CHECK: t1:
>> -; CHECK: fconsts s1, #16
>> +; CHECK: vmov.f32 s1, #4.000000e+00
>>  %0 = fadd float %x, 4.000000e+00
>>  ret float %0
>> }
>> @@ -11,7 +11,7 @@
>> define arm_apcscc double @t2(double %x) nounwind readnone optsize {
>> entry:
>> ; CHECK: t2:
>> -; CHECK: fconstd d1, #8
>> +; CHECK: vmov.f64 d1, #3.000000e+00
>>  %0 = fadd double %x, 3.000000e+00
>>  ret double %0
>> }
>> @@ -19,7 +19,7 @@
>> define arm_apcscc double @t3(double %x) nounwind readnone optsize {
>> entry:
>> ; CHECK: t3:
>> -; CHECK: fconstd d1, #170
>> +; CHECK: vmov.f64 d1, #-1.300000e+01
>>  %0 = fmul double %x, -1.300000e+01
>>  ret double %0
>> }
>> @@ -27,7 +27,7 @@
>> define arm_apcscc float @t4(float %x) nounwind readnone optsize {
>> entry:
>> ; CHECK: t4:
>> -; CHECK: fconsts s1, #184
>> +; CHECK: vmov.f32 s1, #-2.400000e+01
>>  %0 = fmul float %x, -2.400000e+01
>>  ret float %0
>> }
>>
>> Modified: llvm/trunk/test/CodeGen/Thumb2/cross-rc-coalescing-2.ll
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Thumb2/cross-rc-coalescing-2.ll?rev=89700&r1=89699&r2=89700&view=diff
>>
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- llvm/trunk/test/CodeGen/Thumb2/cross-rc-coalescing-2.ll  
>> (original)
>> +++ llvm/trunk/test/CodeGen/Thumb2/cross-rc-coalescing-2.ll Mon Nov  
>> 23 15:08:25 2009
>> @@ -1,4 +1,4 @@
>> -; RUN: llc < %s -mtriple=thumbv7-apple-darwin9 -mcpu=cortex-a8 |  
>> grep vmov.f32 | count 6
>> +; RUN: llc < %s -mtriple=thumbv7-apple-darwin9 -mcpu=cortex-a8 |  
>> grep vmov.f32 | count 7
>>
>> define arm_apcscc void @fht(float* nocapture %fz, i16 signext %n)  
>> nounwind {
>> entry:
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>




More information about the llvm-commits mailing list