| ... | ... | @@ -1656,6 +1656,7 @@ pub fn mustLower(air: Air, inst: Air.Inst.Index, ip: *const InternPool) bool { |
| 1656 | 1656 | const data = air.instructions.items(.data)[@intFromEnum(inst)]; |
| 1657 | 1657 | return switch (air.instructions.items(.tag)[@intFromEnum(inst)]) { |
| 1658 | 1658 | .arg, |
| 1659 | .assembly, |
| 1659 | 1660 | .block, |
| 1660 | 1661 | .loop, |
| 1661 | 1662 | .repeat, |
| ... | ... | @@ -1861,14 +1862,6 @@ pub fn mustLower(air: Air, inst: Air.Inst.Index, ip: *const InternPool) bool { |
| 1861 | 1862 | .work_group_id, |
| 1862 | 1863 | => false, |
| 1863 | 1864 | |
| 1864 | | .assembly => { |
| 1865 | | const extra = air.extraData(Air.Asm, data.ty_pl.payload); |
| 1866 | | const is_volatile = @as(u1, @truncate(extra.data.flags >> 31)) != 0; |
| 1867 | | return is_volatile or if (extra.data.outputs_len == 1) |
| 1868 | | @as(Air.Inst.Ref, @enumFromInt(air.extra[extra.end])) != .none |
| 1869 | | else |
| 1870 | | extra.data.outputs_len > 1; |
| 1871 | | }, |
| 1872 | 1865 | .load => air.typeOf(data.ty_op.operand, ip).isVolatilePtrIp(ip), |
| 1873 | 1866 | .slice_elem_val, .ptr_elem_val => air.typeOf(data.bin_op.lhs, ip).isVolatilePtrIp(ip), |
| 1874 | 1867 | .atomic_load => switch (data.atomic_load.order) { |