code="fmov s0, w1" v0=qq:0xaaaabbbbccccdddd,0 x1=q:0xffffffffffffffff => v0=qq:0xffffffff,0
code="fmov d0, x1" v0=qq:0xaaaabbbbccccdddd,0 x1=q:0xffffffffffffffff => v0=qq:0xffffffffffffffff,0
code="fmov w1, s0" v0=qq:0xaaaabbbbccccdddd,0 x1=q:0xffffffffffffffff => x1=q:0xccccdddd
code="fmov x1, d0" v0=qq:0xaaaabbbbccccdddd,0 x1=q:0xffffffffffffffff => x1=q:0xaaaabbbbccccdddd

code="fmov v0.d[1], x1" v0=qq:0xaaaabbbbccccdddd,0 x1=q:0xffffffffffffffff => v0=qq:0xaaaabbbbccccdddd,0xffffffffffffffff
code="fmov x1, v0.d[1]" v0=qq:0,0xaaaabbbbccccdddd x1=q:0xffffffffffffffff => x1=q:0xaaaabbbbccccdddd

code="fmov s0, s1" v0=qq:0xaaaabbbbccccdddd,0 v1=qq:0xffffffffffffffff,0 => v0=qq:0xffffffff,0
code="fmov d0, d1" v0=qq:0xaaaabbbbccccdddd,0 v1=qq:0xffffffffffffffff,0 => v0=qq:0xffffffffffffffff,0

code="fmov s0, #0.5"  v0=qq:0xaaaabbbbccccdddd,0 => v0=flq:0.5,0,0
code="fmov s0, #1.0"  v0=qq:0xaaaabbbbccccdddd,0 => v0=flq:1.0,0,0
code="fmov s0, #3.5"  v0=qq:0xaaaabbbbccccdddd,0 => v0=flq:3.5,0,0
code="fmov d0, #10.0" v0=qq:0xaaaabbbbccccdddd,0 => v0=dq:10.0,0
code="fmov d0, #-1.5" v0=qq:0xaaaabbbbccccdddd,0 => v0=dq:-1.5,0
code="fmov d0, #21.0" v0=qq:0xaaaabbbbccccdddd,0 => v0=dq:21.0,0

# FCVT_S, FCVT_D: Convert precisions; the value is an approximation of π.
code="fcvt s0, d1" v1=qq:0x400921fb54442d18,0 => v0=qq:0x40490fdb,0
code="fcvt d0, s1" v1=qq:0x40490fdb,0         => v0=qq:0x400921fb60000000,0

code="scvtf d0, x1" v0=qq:0,0 x1=q:-10        => v0=dq:-10.0,0
code="ucvtf d0, x1" v0=qq:0,0 x1=q:0xffffffff => v0=dq:4294967295.0,0

code="fcvtns x1, d0" x1=q:0 v0=dq:-0.5,0 => x1=q:0
code="fcvtnu x1, d0" x1=q:0 v0=dq:0.5,0  => x1=q:0

# There are sporadic failures with the LLVM 11 interpreter.
+jit code="fcvtas x1, d0" x1=q:0 v0=dq:-0.5,0 => x1=q:-1
+jit code="fcvtau x1, d0" x1=q:0 v0=dq:0.5,0  => x1=q:1
+jit code="fcvtms x1, d0" x1=q:0 v0=dq:-0.5,0 => x1=q:-1
+jit code="fcvtmu x1, d0" x1=q:0 v0=dq:0.5,0  => x1=q:0
+jit code="fcvtzs x1, d0" x1=q:0 v0=dq:-0.5,0 => x1=q:0
+jit code="fcvtzu x1, d0" x1=q:0 v0=dq:0.5,0  => x1=q:0
+jit code="fcvtps x1, d0" x1=q:0 v0=dq:-0.5,0 => x1=q:0
+jit code="fcvtpu x1, d0" x1=q:0 v0=dq:0.5,0  => x1=q:1

# Fixed-point conversion
code="fcvtzs x1, d0, #1" x1=q:0 v0=dq:0.5,0 => x1=q:0x01
code="fcvtzu x1, d0, #8" x1=q:0 v0=dq:0.5,0 => x1=q:0x80
code="fcvtzs x1, d0, #1" x1=q:0 v0=dq:-0.5,0 => x1=q:0xffffffffffffffff
code="fcvtzu x1, d0, #1" x1=q:0 v0=dq:0.25,0 => x1=q:0x0
code="scvtf d0, x1, #8" v0=qq:0,0 x1=q:0x80 => v0=dq:0.5,0
code="scvtf d0, x1, #1" v0=qq:0,0 x1=q:0xffffffffffffffff => v0=dq:-0.5,0
code="ucvtf s0, w1, #8" v0=qq:0,0 x1=q:0xffffffff10 => v0=flq:16777215.0625,0,0

+jit code="frintn d0, d1" v0=qq:0,0 v1=dq:3.5,0 => v0=dq:4.0,0
+jit code="frinti d0, d1" v0=qq:0,0 v1=dq:3.5,0 => v0=dq:4.0,0
+jit code="frinta d0, d1" v0=qq:0,0 v1=dq:3.5,0 => v0=dq:4.0,0
+jit code="frintm d0, d1" v0=qq:0,0 v1=dq:-3.5,0 => v0=dq:-4.0,0
+jit code="frintz d0, d1" v0=qq:0,0 v1=dq:3.5,0 => v0=dq:3.0,0
+jit code="frintp d0, d1" v0=qq:0,0 v1=dq:3.5,0 => v0=dq:4.0,0

+jit code="frintx d0, d1" v0=qq:0,0 v1=dq:3.0,0 => v0=dq:3.0,0

code="fcsel d0, d1, d2, ne" v0=qq:0,0 v1=qq:1,0 v2=qq:2,0 z=00 => v0=qq:1,0
code="fcsel s0, s1, s2, ne" v0=qq:0,0 v1=qq:1,0 v2=qq:2,0 z=01 => v0=qq:2,0

code="fcmp d0, d1"    v0=dq:1.25,0   v1=dq:1.25,0   n=00 z=00 c=00 v=00 => n=00 z=01 c=01 v=00
code="fcmp s0, s1"    v0=flq:0.5,0,0 v1=flq:3.5,0,0 n=00 z=00 c=00 v=00 => n=01 z=00 c=00 v=00
code="fcmp d0, #0.0"  v0=dq:1.25,0   v1=dq:1.25,0   n=00 z=00 c=00 v=00 => n=00 z=00 c=01 v=00
code="fcmpe d0, d1"   v0=dq:1.25,0   v1=dq:1.25,0   n=00 z=00 c=00 v=00 => n=00 z=01 c=01 v=00
code="fcmpe d0, #0.0" v0=dq:1.25,0   v1=dq:1.25,0   n=00 z=00 c=00 v=00 => n=00 z=00 c=01 v=00

code="fccmp d0, d1, #0xf, eq" v0=dq:1.25,0 v1=dq:1.25,0 n=00 z=01 c=00 v=00 => n=00 z=01 c=01 v=00
code="fccmp d0, d1, #0xf, ne" v0=dq:1.25,0 v1=dq:1.25,0 n=00 z=01 c=00 v=00 => n=01 z=01 c=01 v=01
code="fccmp s0, s1, #0xf, hs" v0=dq:1.25,0 v1=dq:1.25,0 n=00 z=00 c=01 v=00 => n=00 z=01 c=01 v=00
code="fccmp s0, s1, #0xf, lo" v0=dq:1.25,0 v1=dq:1.25,0 n=00 z=00 c=01 v=00 => n=01 z=01 c=01 v=01

code="fmadd d0, d1, d2, d3" v1=dq:4,0 v2=dq:3,0 v3=dq:1.5,0 => v0=dq:13.5,0
code="fmsub d0, d1, d2, d3" v1=dq:4,0 v2=dq:3,0 v3=dq:1.5,0 => v0=dq:-10.5,0
code="fnmadd d0, d1, d2, d3" v1=dq:4,0 v2=dq:3,0 v3=dq:1.5,0 => v0=dq:-13.5,0
code="fnmsub d0, d1, d2, d3" v1=dq:4,0 v2=dq:3,0 v3=dq:1.5,0 => v0=dq:10.5,0
