mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-22 08:30:34 +01:00
nir: fix signed overflow in pack_half_2x16 constant folding
Without this cast, the left shift is promoted to 'int'. Fixes "left shift of 50432 by 16 places cannot be represented in type 'int'" with horizon_zero_dawn/001064f580f8e3be and UBSan. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35255>
This commit is contained in:
parent
2e82f481ca
commit
78aae4b1ba
1 changed files with 2 additions and 2 deletions
|
|
@ -945,10 +945,10 @@ binop("umax", tuint, _2src_commutative + associative, "MAX2(src0, src1)")
|
|||
binop("fpow", tfloat, "", "bit_size == 64 ? pow(src0, src1) : powf(src0, src1)")
|
||||
|
||||
binop_horiz("pack_half_2x16_split", 1, tuint32, 1, tfloat32, 1, tfloat32,
|
||||
"pack_half_1x16(src0.x) | ((uint32_t)(pack_half_1x16(src1.x)) << 16)")
|
||||
"pack_half_1x16(src0.x) | ((uint32_t)pack_half_1x16(src1.x) << 16)")
|
||||
|
||||
binop_horiz("pack_half_2x16_rtz_split", 1, tuint32, 1, tfloat32, 1, tfloat32,
|
||||
"pack_half_1x16_rtz(src0.x) | (uint32_t)(pack_half_1x16_rtz(src1.x) << 16)")
|
||||
"pack_half_1x16_rtz(src0.x) | ((uint32_t)pack_half_1x16_rtz(src1.x) << 16)")
|
||||
|
||||
binop_convert("pack_64_2x32_split", tuint64, tuint32, "",
|
||||
"src0 | ((uint64_t)src1 << 32)")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue