Displaying 2 results from an estimated 2 matches for "store_to".
Did you mean:
store_tr
2015 Jan 28
2
[LLVMdev] RFC: Proposal for Poison Semantics
On Tue, Jan 27, 2015 at 7:23 PM, Sanjoy Das <sanjoy at playingwithpointers.com>
wrote:
> Hi David,
>
> I spent some time thinking about poison semantics this way, but here
> is where I always get stuck:
>
> Consider the IR fragment
>
> %x = zext i32 %maybe_poison to i64
> %y = lshr i64 %x 32
> %ptr = gep %global, %y
> store 42 to %ptr
>
> If
2015 Jan 28
2
[LLVMdev] RFC: Proposal for Poison Semantics
...t.
>
> Right, which is why I initially chose zext. :)
>
> But with sexts with you a similar problem:
>
>
> %t = add nsw <known positive>, <known positive>
> %t1 = and %t, 0x7fff...
> %t2 = sext %t1
> %t3 = lshr %t2, <width of typeof %t>
> store_to (gep %global, %t2)
>
> Now %t3 is always zero and this program is well-defined if even if %t
> is poison. However, I cannot reason "%t never overflows, so it is
> always >0 and hence %t1 == %t" since substituting %t1 with %t will
> change the meaning of a well-defined p...