atomics A.1b: real RMW emission (atomicrmw) + unit test (green)

emitAtomicRmw: LLVMBuildAtomicRMW (binop from RmwKind; signed Min/Max vs
unsigned UMin/UMax from val_ty; singleThread=0; LLVM supplies ABI alignment).
examples/1701 green (add/sub/and/or/xor/min/max return old values, results
verified). Unit test 'emit: atomic rmw (add + signed/unsigned min)' locks
'atomicrmw add' + signed 'min' vs unsigned 'umin'. Suite green (716/0).
This commit is contained in:
agra
2026-06-20 10:19:44 +03:00
parent 718f27e27f
commit 05311646aa
6 changed files with 98 additions and 51 deletions

View File

@@ -1 +1 @@
1
0

View File

@@ -1,7 +1 @@
error: atomic rmw LLVM emission not yet implemented (Stream A, A.1b)
error: atomic rmw LLVM emission not yet implemented (Stream A, A.1b)
error: atomic rmw LLVM emission not yet implemented (Stream A, A.1b)
error: atomic rmw LLVM emission not yet implemented (Stream A, A.1b)
error: atomic rmw LLVM emission not yet implemented (Stream A, A.1b)
error: atomic rmw LLVM emission not yet implemented (Stream A, A.1b)
error: atomic rmw LLVM emission not yet implemented (Stream A, A.1b)

View File

@@ -1 +1,10 @@
old add: 10
old sub: 15
now: 12
old and: 240
old or: 48
old xor: 51
now: 60
old min: 20
old max: 8
now: 15