On a target with a 16-bit mask (for example), we would choose the type of an integer literal "1024" to be an int16. Previously, we used an int32, which is a worse fit and leads to less efficient code than an int16 on a 16-bit mask target. (However, we'd still give an integer literal 1000000 the type int32, even in a 16-bit target.) Updated the tests to still pass with 8 and 16-bit targets, given this change.
8 lines
195 B
Plaintext
8 lines
195 B
Plaintext
// Pointer type cast of type "uniform int32 \* uniform" to integer type "uniform int32" may lose information.
|
|
// rule: run on arch=x86-64
|
|
|
|
int32 foo(int * uniform x) {
|
|
return (int32) x;
|
|
}
|
|
|