OSDN Git Service

Update aosp/master LLVM for rebase to r230699.
[android-x86/external-llvm.git] / test / MC / Disassembler / Hexagon / xtype_fp.txt
1 # RUN: llvm-mc -triple=hexagon -disassemble < %s | FileCheck %s
2 # Hexagon Programmer's Reference Manual 11.10.4 XTYPE/FP
3
4 # Floating point addition
5 0x11 0xdf 0x15 0xeb
6 # CHECK: r17 = sfadd(r21, r31)
7
8 # Classify floating-point value
9 0x03 0xd5 0xf1 0x85
10 # CHECK: p3 = sfclass(r17, #21)
11 0xb3 0xc2 0x90 0xdc
12 # CHECK: p3 = dfclass(r17:16, #21)
13
14 # Compare floating-point value
15 0x03 0xd5 0xf1 0xc7
16 # CHECK: p3 = sfcmp.ge(r17, r21)
17 0x23 0xd5 0xf1 0xc7
18 # CHECK: p3 = sfcmp.uo(r17, r21)
19 0x63 0xd5 0xf1 0xc7
20 # CHECK: p3 = sfcmp.eq(r17, r21)
21 0x83 0xd5 0xf1 0xc7
22 # CHECK: p3 = sfcmp.gt(r17, r21)
23 0x03 0xd4 0xf0 0xd2
24 # CHECK: p3 = dfcmp.eq(r17:16, r21:20)
25 0x23 0xd4 0xf0 0xd2
26 # CHECK: p3 = dfcmp.gt(r17:16, r21:20)
27 0x43 0xd4 0xf0 0xd2
28 # CHECK: p3 = dfcmp.ge(r17:16, r21:20)
29 0x63 0xd4 0xf0 0xd2
30 # CHECK: p3 = dfcmp.uo(r17:16, r21:20)
31
32 # Convert floating-point value to other format
33 0x10 0xc0 0x95 0x84
34 # CHECK: r17:16 = convert_sf2df(r21)
35 0x31 0xc0 0x14 0x88
36 # CHECK: r17 = convert_df2sf(r21:20)
37
38 # Convert integer to floating-point value
39 0x50 0xc0 0xf4 0x80
40 # CHECK: r17:16 = convert_ud2df(r21:20)
41 0x70 0xc0 0xf4 0x80
42 # CHECK: r17:16 = convert_d2df(r21:20)
43 0x30 0xc0 0x95 0x84
44 # CHECK: r17:16 = convert_uw2df(r21)
45 0x50 0xc0 0x95 0x84
46 # CHECK: r17:16 = convert_w2df(r21)
47 0x31 0xc0 0x34 0x88
48 # CHECK: r17 = convert_ud2sf(r21:20)
49 0x31 0xc0 0x54 0x88
50 # CHECK: r17 = convert_d2sf(r21:20)
51 0x11 0xc0 0x35 0x8b
52 # CHECK: r17 = convert_uw2sf(r21)
53 0x11 0xc0 0x55 0x8b
54 # CHECK: r17 = convert_w2sf(r21)
55
56 # Convert floating-point value to integer
57 0x10 0xc0 0xf4 0x80
58 # CHECK: r17:16 = convert_df2d(r21:20)
59 0x30 0xc0 0xf4 0x80
60 # CHECK: r17:16 = convert_df2ud(r21:20)
61 0xd0 0xc0 0xf4 0x80
62 # CHECK: r17:16 = convert_df2d(r21:20):chop
63 0xf0 0xc0 0xf4 0x80
64 # CHECK: r17:16 = convert_df2ud(r21:20):chop
65 0x70 0xc0 0x95 0x84
66 # CHECK: r17:16 = convert_sf2ud(r21)
67 0x90 0xc0 0x95 0x84
68 # CHECK: r17:16 = convert_sf2d(r21)
69 0xb0 0xc0 0x95 0x84
70 # CHECK: r17:16 = convert_sf2ud(r21):chop
71 0xd0 0xc0 0x95 0x84
72 # CHECK: r17:16 = convert_sf2d(r21):chop
73 0x31 0xc0 0x74 0x88
74 # CHECK: r17 = convert_df2uw(r21:20)
75 0x31 0xc0 0x94 0x88
76 # CHECK: r17 = convert_df2w(r21:20)
77 0x31 0xc0 0xb4 0x88
78 # CHECK: r17 = convert_df2uw(r21:20):chop
79 0x31 0xc0 0xf4 0x88
80 # CHECK: r17 = convert_df2w(r21:20):chop
81 0x11 0xc0 0x75 0x8b
82 # CHECK: r17 = convert_sf2uw(r21)
83 0x31 0xc0 0x75 0x8b
84 # CHECK: r17 = convert_sf2uw(r21):chop
85 0x11 0xc0 0x95 0x8b
86 # CHECK: r17 = convert_sf2w(r21)
87 0x31 0xc0 0x95 0x8b
88 # CHECK: r17 = convert_sf2w(r21):chop
89
90 # Floating point extreme value assistance
91 0x11 0xc0 0xb5 0x8b
92 # CHECK: r17 = sffixupr(r21)
93 0x11 0xdf 0xd5 0xeb
94 # CHECK: r17 = sffixupn(r21, r31)
95 0x31 0xdf 0xd5 0xeb
96 # CHECK: r17 = sffixupd(r21, r31)
97
98 # Floating point fused multiply-add
99 0x91 0xdf 0x15 0xef
100 # CHECK: r17 += sfmpy(r21, r31)
101 0xb1 0xdf 0x15 0xef
102 # CHECK: r17 -= sfmpy(r21, r31)
103
104 # Floating point fused multiply-add with scaling
105 0xf1 0xdf 0x75 0xef
106 # CHECK: r17 += sfmpy(r21, r31, p3):scale
107
108 # Floating point reciprocal square root approximation
109 0x71 0xc0 0xf5 0x8b
110 # CHECK: r17, p3 = sfinvsqrta(r21)
111
112 # Floating point fused multiply-add for library routines
113 0xd1 0xdf 0x15 0xef
114 # CHECK: r17 += sfmpy(r21, r31):lib
115 0xf1 0xdf 0x15 0xef
116 # CHECK: r17 -= sfmpy(r21, r31):lib
117
118 # Create floating-point constant
119 0xb1 0xc2 0x00 0xd6
120 # CHECK: r17 = sfmake(#21):pos
121 0xb1 0xc2 0x40 0xd6
122 # CHECK: r17 = sfmake(#21):neg
123 0xb0 0xc2 0x00 0xd9
124 # CHECK: r17:16 = dfmake(#21):pos
125 0xb0 0xc2 0x40 0xd9
126 # CHECK: r17:16 = dfmake(#21):neg
127
128 # Floating point maximum
129 0x11 0xdf 0x95 0xeb
130 # CHECK: r17 = sfmax(r21, r31)
131
132 # Floating point minimum
133 0x31 0xdf 0x95 0xeb
134 # CHECK: r17 = sfmin(r21, r31)
135
136 # Floating point multiply
137 0x11 0xdf 0x55 0xeb
138 # CHECK: r17 = sfmpy(r21, r31)
139
140 # Floating point reciprocal approximation
141 0xf1 0xdf 0xf5 0xeb
142 # CHECK: r17, p3 = sfrecipa(r21, r31)
143
144 # Floating point subtraction
145 0x31 0xdf 0x15 0xeb
146 # CHECK: r17 = sfsub(r21, r31)