1/* Test file for AArch64 half-precision floating-point instructions. */ 2 3 .text 4 fccmp s0, s0, #0, eq 5 fccmp h0, h0, #0, eq 6 fccmp s1, s2, #0, le 7 fccmp h1, h2, #0, le 8 9 fccmpe s0, s0, #0, eq 10 fccmpe h0, h0, #0, eq 11 fccmpe s1, s2, #0, le 12 fccmpe h1, h2, #0, le 13 14 fcmp s0, s0 15 fcmp h0, h0 16 fcmp s1, s2 17 fcmp h1, h2 18 19 fcmpe s0, s0 20 fcmpe h0, h0 21 fcmpe s1, s2 22 fcmpe h1, h2 23 24 fcmp s0, #0.0 25 fcmp h0, #0.0 26 27 fcmpe s0, #0.0 28 fcmpe h0, #0.0 29 30 fcsel s0, s0, s1, eq 31 fcsel h0, h0, h1, eq 32 33 fmov x0, h0 34 fmov w0, h0 35 fmov h1, x0 36 fmov h1, w0 37 38 /* Scalar data-processing with one source. */ 39 .macro sdp1src op 40 \op h0, h1 41 \op s0, s1 42 \op d0, d1 43 .endm 44 45 .text 46 .irp op, fabs, fneg, fsqrt, frintn, frintp, frintm, frintz 47 sdp1src \op 48 .endr 49 50 .irp op, frinta, frintx, frinti 51 sdp1src \op 52 .endr 53 54 /* Scalar data-processing with two sources. */ 55 .macro sdp2src op 56 \op h0, h1, h2 57 \op s0, s1, s2 58 \op d0, d1, d2 59 .endm 60 61 .text 62 .irp op, fmul, fdiv, fadd, fsub, fmax, fmin, fmaxnm, fminnm, fnmul 63 sdp2src \op 64 .endr 65 66 /* Scalar data-processing with three sources. */ 67 .macro sdp3src op 68 \op h0, h1, h2, h3 69 \op s0, s1, s2, s3 70 \op d0, d1, d2, d3 71 .endm 72 73 .text 74 .irp op, fmadd, fmsub, fnmadd, fnmsub 75 sdp3src \op 76 .endr 77 78 /* Scalar conversion. */ 79 80 .macro scvt_fix2fp op 81 \op s0, w1, #2 82 \op s0, x1, #3 83 \op h0, w1, #2 84 \op h0, x1, #3 85 .endm 86 87 .macro scvt_fp2fix op 88 \op w1, d0, #2 89 \op x1, d0, #3 90 \op w1, h0, #2 91 \op x1, h0, #3 92 .endm 93 94 .text 95 96 fmov s0, #1.0 97 fmov h0, #1.0 98 99 .irp op, scvtf, ucvtf 100 scvt_fix2fp \op 101 .endr 102 103 .irp op, fcvtzs, fcvtzu 104 scvt_fp2fix \op 105 .endr 106 107 .macro scvt_fp2int op 108 \op w1, s0 109 \op x1, d0 110 \op w1, h0 111 \op x1, h0 112 .endm 113 114 .macro scvt_int2fp op 115 \op s0, w1 116 \op d0, x1 117 \op h0, w1 118 \op h0, x1 119 .endm 120 121 .text 122 .irp op, fcvtns, fcvtnu, fcvtau, fcvtas 123 scvt_fp2int \op 124 .endr 125 126 .text 127 .irp op, fcvtps, fcvtpu, fcvtms, fcvtmu 128 scvt_fp2int \op 129 .endr 130 131 .irp op, scvtf, ucvtf 132 scvt_int2fp \op 133 .endr 134 135 /* FMOV. */ 136 137 fmov d0, d1 138 fmov s0, s1 139 fmov h0, h1 140 141 fmov x0, h1 142 fmov w0, h1 143 144 fmov h1, x0 145 fmov h1, w0 146 147 fmov w0, s1 148 fmov x0, d1 149 150 fmov s1, w0 151 fmov d1, x0 152