On 12/20/21 4:18 AM, Matheus K. Ferst wrote:
I'd like to avoid mtvsrdd/mfvsrld because they were introduced in PowerISA v3.0, and xscvspdpn/xscvdpspn are from v2.07.

Fair enough, I suppose.

How about

asm("mtvsrd 0, %2\n\t"
     "mtvsrd 1, %3\n\t"
     "xxmrghd 0, 0, 1\n\t"
     INSN " 0, 0\n\t"
     "mfvsrd %0, 0\n\t"
     "xxswapd 0, 0\n\t"
     "mfvsrd %1, 0\n\t"
     : "=r" (th), "=r" (tl)
     : "r" (bh), "r" (bl)
     : "vs0", "vs1");

?

Looks good.


r~

Reply via email to