mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 06:40:11 +01:00
nir/opcodes: Fix constant-folding of bitfield_insert
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104119 CC: <mesa-stable@lists.freedesktop.org> CC: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
8fda98c4f1
commit
947470d10b
1 changed files with 2 additions and 2 deletions
|
|
@ -724,12 +724,12 @@ opcode("bitfield_insert", 0, tuint32, [0, 0, 0, 0],
|
|||
unsigned base = src0, insert = src1;
|
||||
int offset = src2, bits = src3;
|
||||
if (bits == 0) {
|
||||
dst = 0;
|
||||
dst = base;
|
||||
} else if (offset < 0 || bits < 0 || bits + offset > 32) {
|
||||
dst = 0;
|
||||
} else {
|
||||
unsigned mask = ((1ull << bits) - 1) << offset;
|
||||
dst = (base & ~mask) | ((insert << bits) & mask);
|
||||
dst = (base & ~mask) | ((insert << offset) & mask);
|
||||
}
|
||||
""")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue