[llvm-dev] What should a truncating store do?

Tom Stellard via llvm-dev llvm-dev at lists.llvm.org
Wed May 9 09:54:10 PDT 2018


On 09/15/2017 10:55 AM, Friedman, Eli via llvm-dev wrote:
> On 9/15/2017 5:49 AM, Jon Chesterfield via llvm-dev wrote:
>> For example, truncating store of an i32 to i6. My assumption was that this should write the low six bits of the i32 to somewhere in memory.
>>
>> Should the top 24 bits of a corresponding 32 bit region of memory be unchanged, zero,  undefined?
> 
> Unchanged.
> 
>> Should the two bits that would round the i6 up to a byte be preserved, zero, undefined?
> 
> Zero.  Legalization will normally handle this for you, though, by transforming it to an i8 store.
> 

Why is this Zero?  The language ref says the value of those bits are
unspecified.

-Tom

> -Eli
> 



More information about the llvm-dev mailing list