[llvm-commits] [llvm-gcc-4.2] r74123 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Dale Johannesen
dalej at apple.com
Thu Jun 25 09:58:23 PDT 2009
On Jun 25, 2009, at 1:19 AMPDT, Duncan Sands wrote:
> Hi Dale,
>
>> More resurrection of int complex.
>> gcc.c-torture/execute/complex-6.c
>
> how about adding a builder method CreateAnyNeg which
> creates an integer or float negation as appropriate?
We had that when Neg could be either int or float. I think I'll leave
this for the guy who decided splitting off FNeg was a good idea, if he
wants to.
> Ciao,
>
> Duncan.
>
>> Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp?rev=74123&r1=74122&r2=74123&view=diff
>>
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original)
>> +++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Wed Jun 24 16:53:10 2009
>> @@ -3120,8 +3120,13 @@
>> // Handle complex numbers: -(a+ib) = -a + i*-b
>> Value *R, *I;
>> EmitLoadFromComplex(R, I, Tmp);
>> - R = Builder.CreateFNeg(R);
>> - I = Builder.CreateFNeg(I);
>> + if (R->getType()->isFloatingPoint()) {
>> + R = Builder.CreateFNeg(R);
>> + I = Builder.CreateFNeg(I);
>> + } else {
>> + R = Builder.CreateNeg(R);
>> + I = Builder.CreateNeg(I);
>> + }
>> EmitStoreToComplex(*DestLoc, R, I);
>> return 0;
>> }
>> @@ -3137,7 +3142,10 @@
>> // Handle complex numbers: ~(a+ib) = a + i*-b
>> Value *R, *I;
>> EmitLoadFromComplex(R, I, Tmp);
>> - I = Builder.CreateFNeg(I);
>> + if (I->getType()->isFloatingPoint())
>> + I = Builder.CreateFNeg(I);
>> + else
>> + I = Builder.CreateNeg(I);
>> EmitStoreToComplex(*DestLoc, R, I);
>> return 0;
>> }
>> @@ -4550,6 +4558,8 @@
>> return false;
>> }
>>
>> + // This treats everything as unknown, and is minimally
>> defensible as
>> + // correct, although completely useless.
>> if (tree_low_cst (ObjSizeTree, 0) < 2)
>> Result = ConstantInt::getAllOnesValue(TD.getIntPtrType());
>> else
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> _______________________________________________
> 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