diff --git a/src/panfrost/bifrost/valhall/asm.py b/src/panfrost/bifrost/valhall/asm.py index 8c025a5b909..566c7565142 100644 --- a/src/panfrost/bifrost/valhall/asm.py +++ b/src/panfrost/bifrost/valhall/asm.py @@ -293,6 +293,12 @@ def parse_asm(line): swizzled = True val = enums['lane_8_bit'].bare_values.index(mod) encoded |= (val << src.lane) + elif mod in enums['lanes_8_bit'].bare_values: + die_if(not src.lanes, "Instruction doesn't take a lane") + die_if(swizzled, "Multiple swizzles specified") + swizzled = True + val = enums['lanes_8_bit'].bare_values.index(mod) + encoded |= (val << src.offset['widen']) else: die(f"Unknown modifier {mod}")