[llvm-commits] [llvm] r132759 - in /llvm/trunk: lib/Transforms/Scalar/ScalarReplAggregates.cpp test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll
Cameron Zwarich
zwarich at apple.com
Wed Jun 8 16:10:38 PDT 2011
On Jun 8, 2011, at 3:58 PM, Eli Friedman wrote:
> On Wed, Jun 8, 2011 at 3:08 PM, Cameron Zwarich <zwarich at apple.com> wrote:
>> Author: zwarich
>> Date: Wed Jun 8 17:08:31 2011
>> New Revision: 132759
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=132759&view=rev
>> Log:
>> Fix an assymmetry between ConvertScalar_ExtractValue and ConvertScalar_InsertValue. The
>> former was using the size of the entire alloca, whereas the latter was correctly using
>> the allocated size of the immediate type being converted (which may differ from the size
>> of the alloca). This fixes PR10082.
> [...]
>> +define float @test2() uwtable ssp {
>> +entry:
>> + %ref.tmp2 = alloca {<2 x float>, float}, align 16
>> + %tmpcast = bitcast {<2 x float>, float}* %ref.tmp2 to float*
>> + %tmpcast2 = getelementptr {<2 x float>, float}* %ref.tmp2, i64 0, i32 1
>> + %0 = getelementptr {<2 x float>, float}* %ref.tmp2, i64 0, i32 0
>> + store <2 x float> zeroinitializer, <2 x float>* %0, align 16
>> + store float 1.0, float* %tmpcast2, align 4
>> + %r1 = load float* %tmpcast, align 4
>> + %r2 = load float* %tmpcast2, align 4
>> + %r = fadd float %r1, %r2
>> + ret float %r
>> +}
>
> I forgot to mention: the reason for including this test was to make
> sure it doesn't get miscompiled. And with your patch, it does get
> miscompiled…
I should have checked the output more carefully, but I thought it was just a crasher given the context of the bug. I'll take a look at it.
The patch I landed is definitely fixing a real issue, though.
Cameron
More information about the llvm-commits
mailing list