I used
#define Fi3(S, ASM) uint64_t S(uint64_t a, uint64_t b, uint64_t c) \ { \ uint64_t res = 0; \ asm volatile ( \ "ltgr %[c], %[c]\n" \ ASM \ "stg %[c], %[res] " \ : [res] "=&r" (res) \ : [a] "r" (a), \ [b] "r" (b), \ [c] "r" (c) \ ); \ return res; \ }