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 7d8a954578
commit 90c1123d1c
No known key found for this signature in database

View file

@ -4485,7 +4485,8 @@ pub fn doNotOptimizeAway(val: anytype) void {
} else doNotOptimizeAway(&val); } else doNotOptimizeAway(&val);
}, },
.float => { .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 ("" asm volatile (""
: :
: [_] "rm" (val), : [_] "rm" (val),