Please let me know if I've missed something or if there's an easier way to do this in tablegen.
This avoids ugliness such as:
test_atomic_sub_fetch: // @test_atomic_sub_fetch
// BB#0: // %entry
mov w8, #-1
neg w8, w8
ldaddal w8, w8, [x0]
add w0, w8, #1 // =1
retand instead generates:
test_atomic_sub_fetch: // @test_atomic_sub_fetch
// BB#0: // %entry
orr w8, wzr, #0x1
ldaddal w8, w8, [x0]
add w0, w8, #1 // =1
retChad