1 # RUN: llvm-mc -triple=hexagon -disassemble < %s | FileCheck %s
2 # Hexagon Programmer's Reference Manual 11.10.4 XTYPE/FP
4 # Floating point addition
6 # CHECK: r17 = sfadd(r21, r31)
8 # Classify floating-point value
10 # CHECK: p3 = sfclass(r17, #21)
12 # CHECK: p3 = dfclass(r17:16, #21)
14 # Compare floating-point value
16 # CHECK: p3 = sfcmp.ge(r17, r21)
18 # CHECK: p3 = sfcmp.uo(r17, r21)
20 # CHECK: p3 = sfcmp.eq(r17, r21)
22 # CHECK: p3 = sfcmp.gt(r17, r21)
24 # CHECK: p3 = dfcmp.eq(r17:16, r21:20)
26 # CHECK: p3 = dfcmp.gt(r17:16, r21:20)
28 # CHECK: p3 = dfcmp.ge(r17:16, r21:20)
30 # CHECK: p3 = dfcmp.uo(r17:16, r21:20)
32 # Convert floating-point value to other format
34 # CHECK: r17:16 = convert_sf2df(r21)
36 # CHECK: r17 = convert_df2sf(r21:20)
38 # Convert integer to floating-point value
40 # CHECK: r17:16 = convert_ud2df(r21:20)
42 # CHECK: r17:16 = convert_d2df(r21:20)
44 # CHECK: r17:16 = convert_uw2df(r21)
46 # CHECK: r17:16 = convert_w2df(r21)
48 # CHECK: r17 = convert_ud2sf(r21:20)
50 # CHECK: r17 = convert_d2sf(r21:20)
52 # CHECK: r17 = convert_uw2sf(r21)
54 # CHECK: r17 = convert_w2sf(r21)
56 # Convert floating-point value to integer
58 # CHECK: r17:16 = convert_df2d(r21:20)
60 # CHECK: r17:16 = convert_df2ud(r21:20)
62 # CHECK: r17:16 = convert_df2d(r21:20):chop
64 # CHECK: r17:16 = convert_df2ud(r21:20):chop
66 # CHECK: r17:16 = convert_sf2ud(r21)
68 # CHECK: r17:16 = convert_sf2d(r21)
70 # CHECK: r17:16 = convert_sf2ud(r21):chop
72 # CHECK: r17:16 = convert_sf2d(r21):chop
74 # CHECK: r17 = convert_df2uw(r21:20)
76 # CHECK: r17 = convert_df2w(r21:20)
78 # CHECK: r17 = convert_df2uw(r21:20):chop
80 # CHECK: r17 = convert_df2w(r21:20):chop
82 # CHECK: r17 = convert_sf2uw(r21)
84 # CHECK: r17 = convert_sf2uw(r21):chop
86 # CHECK: r17 = convert_sf2w(r21)
88 # CHECK: r17 = convert_sf2w(r21):chop
90 # Floating point extreme value assistance
92 # CHECK: r17 = sffixupr(r21)
94 # CHECK: r17 = sffixupn(r21, r31)
96 # CHECK: r17 = sffixupd(r21, r31)
98 # Floating point fused multiply-add
100 # CHECK: r17 += sfmpy(r21, r31)
102 # CHECK: r17 -= sfmpy(r21, r31)
104 # Floating point fused multiply-add with scaling
106 # CHECK: r17 += sfmpy(r21, r31, p3):scale
108 # Floating point reciprocal square root approximation
110 # CHECK: r17, p3 = sfinvsqrta(r21)
112 # Floating point fused multiply-add for library routines
114 # CHECK: r17 += sfmpy(r21, r31):lib
116 # CHECK: r17 -= sfmpy(r21, r31):lib
118 # Create floating-point constant
120 # CHECK: r17 = sfmake(#21):pos
122 # CHECK: r17 = sfmake(#21):neg
124 # CHECK: r17:16 = dfmake(#21):pos
126 # CHECK: r17:16 = dfmake(#21):neg
128 # Floating point maximum
130 # CHECK: r17 = sfmax(r21, r31)
132 # Floating point minimum
134 # CHECK: r17 = sfmin(r21, r31)
136 # Floating point multiply
138 # CHECK: r17 = sfmpy(r21, r31)
140 # Floating point reciprocal approximation
142 # CHECK: r17, p3 = sfrecipa(r21, r31)
144 # Floating point subtraction
146 # CHECK: r17 = sfsub(r21, r31)