std.mem: work around LoongArch inline asm bug in doNotOptimizeAway()

https://github.com/llvm/llvm-project/issues/159200
This commit is contained in:
Alex Rønne Petersen 2025-09-17 00:23:48 +02:00
parent c547a05b65
commit e7f1624e6e
No known key found for this signature in database

View File

@ -4534,7 +4534,8 @@ pub fn doNotOptimizeAway(val: anytype) void {
} else doNotOptimizeAway(&val);
},
.float => {
if ((t.float.bits == 32 or t.float.bits == 64) and builtin.zig_backend != .stage2_c) {
// https://github.com/llvm/llvm-project/issues/159200
if ((t.float.bits == 32 or t.float.bits == 64) and builtin.zig_backend != .stage2_c and !builtin.cpu.arch.isLoongArch()) {
asm volatile (""
:
: [_] "rm" (val),