[DAGCombiner] Add target hook function to decide folding (mul (add x, c1), c2)
[llvm-project.git] / llvm / test / MC / Sparc / sparc-fp-instructions.s
blobae5ef37bf22d89f832a28f591f149c6e6098733c
1 ! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s
3 ! CHECK: fitos %f0, %f4 ! encoding: [0x89,0xa0,0x18,0x80]
4 ! CHECK: fitod %f0, %f4 ! encoding: [0x89,0xa0,0x19,0x00]
5 ! CHECK: fitoq %f0, %f4 ! encoding: [0x89,0xa0,0x19,0x80]
6 fitos %f0, %f4
7 fitod %f0, %f4
8 fitoq %f0, %f4
10 ! CHECK: fstoi %f0, %f4 ! encoding: [0x89,0xa0,0x1a,0x20]
11 ! CHECK: fdtoi %f0, %f4 ! encoding: [0x89,0xa0,0x1a,0x40]
12 ! CHECK: fqtoi %f0, %f4 ! encoding: [0x89,0xa0,0x1a,0x60]
13 fstoi %f0, %f4
14 fdtoi %f0, %f4
15 fqtoi %f0, %f4
17 ! CHECK: fstod %f0, %f4 ! encoding: [0x89,0xa0,0x19,0x20]
18 ! CHECK: fstoq %f0, %f4 ! encoding: [0x89,0xa0,0x19,0xa0]
19 fstod %f0, %f4
20 fstoq %f0, %f4
22 ! CHECK: fdtos %f0, %f4 ! encoding: [0x89,0xa0,0x18,0xc0]
23 ! CHECK: fdtoq %f0, %f4 ! encoding: [0x89,0xa0,0x19,0xc0]
24 fdtos %f0, %f4
25 fdtoq %f0, %f4
27 ! CHECK: fqtos %f0, %f4 ! encoding: [0x89,0xa0,0x18,0xe0]
28 ! CHECK: fqtod %f0, %f4 ! encoding: [0x89,0xa0,0x19,0x60]
29 fqtos %f0, %f4
30 fqtod %f0, %f4
32 ! CHECK: fmovs %f0, %f4 ! encoding: [0x89,0xa0,0x00,0x20]
33 ! CHECK: fmovd %f0, %f4 ! encoding: [0x89,0xa0,0x00,0x40]
34 ! CHECK: fmovq %f0, %f4 ! encoding: [0x89,0xa0,0x00,0x60]
35 fmovs %f0, %f4
36 fmovd %f0, %f4
37 fmovq %f0, %f4
39 ! CHECK: fnegs %f0, %f4 ! encoding: [0x89,0xa0,0x00,0xa0]
40 ! CHECK: fnegd %f0, %f4 ! encoding: [0x89,0xa0,0x00,0xc0]
41 ! CHECK: fnegq %f0, %f4 ! encoding: [0x89,0xa0,0x00,0xe0]
42 fnegs %f0, %f4
43 fnegd %f0, %f4
44 fnegq %f0, %f4
46 ! CHECK: fabss %f0, %f4 ! encoding: [0x89,0xa0,0x01,0x20]
47 ! CHECK: fabsd %f0, %f4 ! encoding: [0x89,0xa0,0x01,0x40]
48 ! CHECK: fabsq %f0, %f4 ! encoding: [0x89,0xa0,0x01,0x60]
49 fabss %f0, %f4
50 fabsd %f0, %f4
51 fabsq %f0, %f4
53 ! CHECK: fsqrts %f0, %f4 ! encoding: [0x89,0xa0,0x05,0x20]
54 ! CHECK: fsqrtd %f0, %f4 ! encoding: [0x89,0xa0,0x05,0x40]
55 ! CHECK: fsqrtq %f0, %f4 ! encoding: [0x89,0xa0,0x05,0x60]
56 fsqrts %f0, %f4
57 fsqrtd %f0, %f4
58 fsqrtq %f0, %f4
60 ! CHECK: fadds %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x08,0x24]
61 ! CHECK: faddd %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x08,0x44]
62 ! CHECK: faddq %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x08,0x64]
63 fadds %f0, %f4, %f8
64 faddd %f0, %f4, %f8
65 faddq %f0, %f4, %f8
67 ! make sure we can handle V9 double registers and their aliased quad registers.
68 ! CHECK: faddd %f32, %f34, %f62 ! encoding: [0xbf,0xa0,0x48,0x43]
69 ! CHECK: faddq %f32, %f36, %f60 ! encoding: [0xbb,0xa0,0x48,0x65]
70 faddd %f32, %f34, %f62
71 faddq %f32, %f36, %f60
73 ! CHECK: fsubs %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x08,0xa4]
74 ! CHECK: fsubd %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x08,0xc4]
75 ! CHECK: fsubq %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x08,0xe4]
76 fsubs %f0, %f4, %f8
77 fsubd %f0, %f4, %f8
78 fsubq %f0, %f4, %f8
80 ! CHECK: fmuls %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x09,0x24]
81 ! CHECK: fmuld %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x09,0x44]
82 ! CHECK: fmulq %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x09,0x64]
83 fmuls %f0, %f4, %f8
84 fmuld %f0, %f4, %f8
85 fmulq %f0, %f4, %f8
87 ! CHECK: fsmuld %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x0d,0x24]
88 ! CHECK: fdmulq %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x0d,0xc4]
89 fsmuld %f0, %f4, %f8
90 fdmulq %f0, %f4, %f8
92 ! CHECK: fdivs %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x09,0xa4]
93 ! CHECK: fdivd %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x09,0xc4]
94 ! CHECK: fdivq %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x09,0xe4]
95 fdivs %f0, %f4, %f8
96 fdivd %f0, %f4, %f8
97 fdivq %f0, %f4, %f8
99 ! CHECK: fcmps %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0x24]
100 ! CHECK: fcmpd %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0x44]
101 ! CHECK: fcmpq %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0x64]
102 fcmps %f0, %f4
103 fcmpd %f0, %f4
104 fcmpq %f0, %f4
106 ! CHECK: fcmpes %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0xa4]
107 ! CHECK: fcmped %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0xc4]
108 ! CHECK: fcmpeq %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0xe4]
109 fcmpes %f0, %f4
110 fcmped %f0, %f4
111 fcmpeq %f0, %f4
113 ! CHECK: fcmps %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0x24]
114 ! CHECK: fcmpd %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0x44]
115 ! CHECK: fcmpq %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0x64]
116 fcmps %fcc2, %f0, %f4
117 fcmpd %fcc2, %f0, %f4
118 fcmpq %fcc2, %f0, %f4
120 ! CHECK: fcmpes %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0xa4]
121 ! CHECK: fcmped %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0xc4]
122 ! CHECK: fcmpeq %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0xe4]
123 fcmpes %fcc2, %f0, %f4
124 fcmped %fcc2, %f0, %f4
125 fcmpeq %fcc2, %f0, %f4
127 ! CHECK: fxtos %f0, %f4 ! encoding: [0x89,0xa0,0x10,0x80]
128 ! CHECK: fxtod %f0, %f4 ! encoding: [0x89,0xa0,0x11,0x00]
129 ! CHECK: fxtoq %f0, %f4 ! encoding: [0x89,0xa0,0x11,0x80]
130 fxtos %f0, %f4
131 fxtod %f0, %f4
132 fxtoq %f0, %f4
134 ! CHECK: fstox %f0, %f4 ! encoding: [0x89,0xa0,0x10,0x20]
135 ! CHECK: fdtox %f0, %f4 ! encoding: [0x89,0xa0,0x10,0x40]
136 ! CHECK: fqtox %f0, %f4 ! encoding: [0x89,0xa0,0x10,0x60]
137 fstox %f0, %f4
138 fdtox %f0, %f4
139 fqtox %f0, %f4
141 ! CHECK: ld [%l0], %f29 ! encoding: [0xfb,0x04,0x00,0x00]
142 ! CHECK: ldd [%l0], %f48 ! encoding: [0xe3,0x1c,0x00,0x00]
143 ld [%l0], %f29
144 ldd [%l0], %f48
146 ! CHECK: st %f29, [%l0] ! encoding: [0xfb,0x24,0x00,0x00]
147 ! CHECK: std %f48, [%l0] ! encoding: [0xe3,0x3c,0x00,0x00]
148 st %f29, [%l0]
149 std %f48, [%l0]
151 ! CHECK: std %fq, [%o4] ! encoding: [0xc1,0x33,0x00,0x00]
152 ! CHECK: std %fq, [%l1+62] ! encoding: [0xc1,0x34,0x60,0x3e]
153 ! CHECK: std %fq, [%i3+%l7] ! encoding: [0xc1,0x36,0xc0,0x17]
154 std %fq, [%o4]
155 std %fq, [%l1+62]
156 std %fq, [%i3+%l7]