| ... | @@ -1656,6 +1656,7 @@ pub fn mustLower(air: Air, inst: Air.Inst.Index, ip: *const InternPool) bool { | ... | @@ -1656,6 +1656,7 @@ pub fn mustLower(air: Air, inst: Air.Inst.Index, ip: *const InternPool) bool { |
| 1656 | const data = air.instructions.items(.data)[@intFromEnum(inst)]; | 1656 | const data = air.instructions.items(.data)[@intFromEnum(inst)]; |
| 1657 | return switch (air.instructions.items(.tag)[@intFromEnum(inst)]) { | 1657 | return switch (air.instructions.items(.tag)[@intFromEnum(inst)]) { |
| 1658 | .arg, | 1658 | .arg, |
| | 1659 | .assembly, |
| 1659 | .block, | 1660 | .block, |
| 1660 | .loop, | 1661 | .loop, |
| 1661 | .repeat, | 1662 | .repeat, |
| ... | @@ -1861,14 +1862,6 @@ pub fn mustLower(air: Air, inst: Air.Inst.Index, ip: *const InternPool) bool { | ... | @@ -1861,14 +1862,6 @@ pub fn mustLower(air: Air, inst: Air.Inst.Index, ip: *const InternPool) bool { |
| 1861 | .work_group_id, | 1862 | .work_group_id, |
| 1862 | => false, | 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 | .load => air.typeOf(data.ty_op.operand, ip).isVolatilePtrIp(ip), | 1865 | .load => air.typeOf(data.ty_op.operand, ip).isVolatilePtrIp(ip), |
| 1873 | .slice_elem_val, .ptr_elem_val => air.typeOf(data.bin_op.lhs, ip).isVolatilePtrIp(ip), | 1866 | .slice_elem_val, .ptr_elem_val => air.typeOf(data.bin_op.lhs, ip).isVolatilePtrIp(ip), |
| 1874 | .atomic_load => switch (data.atomic_load.order) { | 1867 | .atomic_load => switch (data.atomic_load.order) { |