[DAGCombiner] Add target hook function to decide folding (mul (add x, c1), c2)
[llvm-project.git] / llvm / test / MC / Sparc / sparc-alu-instructions.s
blobb08ab43f13e956fa8c843588db689c8526c0dee4
1 ! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s
2 ! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s
4 ! CHECK: add %g0, %g0, %g0 ! encoding: [0x80,0x00,0x00,0x00]
5 add %g0, %g0, %g0
6 ! CHECK: add %g1, %g2, %g3 ! encoding: [0x86,0x00,0x40,0x02]
7 add %g1, %g2, %g3
8 ! CHECK: add %o0, %o1, %l0 ! encoding: [0xa0,0x02,0x00,0x09]
9 add %r8, %r9, %l0
10 ! CHECK: add %o0, 10, %l0 ! encoding: [0xa0,0x02,0x20,0x0a]
11 add %o0, 10, %l0
13 ! CHECK: addcc %g1, %g2, %g3 ! encoding: [0x86,0x80,0x40,0x02]
14 addcc %g1, %g2, %g3
16 ! CHECK: addxcc %g1, %g2, %g3 ! encoding: [0x86,0xc0,0x40,0x02]
17 addxcc %g1, %g2, %g3
19 ! CHECK: udiv %g1, %g2, %g3 ! encoding: [0x86,0x70,0x40,0x02]
20 udiv %g1, %g2, %g3
22 ! CHECK: sdiv %g1, %g2, %g3 ! encoding: [0x86,0x78,0x40,0x02]
23 sdiv %g1, %g2, %g3
25 ! CHECK: and %g1, %g2, %g3 ! encoding: [0x86,0x08,0x40,0x02]
26 and %g1, %g2, %g3
27 ! CHECK: andn %g1, %g2, %g3 ! encoding: [0x86,0x28,0x40,0x02]
28 andn %g1, %g2, %g3
29 ! CHECK: or %g1, %g2, %g3 ! encoding: [0x86,0x10,0x40,0x02]
30 or %g1, %g2, %g3
31 ! CHECK: orn %g1, %g2, %g3 ! encoding: [0x86,0x30,0x40,0x02]
32 orn %g1, %g2, %g3
33 ! CHECK: xor %g1, %g2, %g3 ! encoding: [0x86,0x18,0x40,0x02]
34 xor %g1, %g2, %g3
35 ! CHECK: xnor %g1, %g2, %g3 ! encoding: [0x86,0x38,0x40,0x02]
36 xnor %g1, %g2, %g3
38 ! CHECK: umul %g1, %g2, %g3 ! encoding: [0x86,0x50,0x40,0x02]
39 umul %g1, %g2, %g3
41 ! CHECK: smul %g1, %g2, %g3 ! encoding: [0x86,0x58,0x40,0x02]
42 smul %g1, %g2, %g3
44 ! CHECK: nop ! encoding: [0x01,0x00,0x00,0x00]
45 nop
47 ! CHECK: sethi 10, %l0 ! encoding: [0x21,0x00,0x00,0x0a]
48 sethi 10, %l0
50 ! CHECK: sll %g1, %g2, %g3 ! encoding: [0x87,0x28,0x40,0x02]
51 sll %g1, %g2, %g3
52 ! CHECK: sll %g1, 31, %g3 ! encoding: [0x87,0x28,0x60,0x1f]
53 sll %g1, 31, %g3
55 ! CHECK: srl %g1, %g2, %g3 ! encoding: [0x87,0x30,0x40,0x02]
56 srl %g1, %g2, %g3
57 ! CHECK: srl %g1, 31, %g3 ! encoding: [0x87,0x30,0x60,0x1f]
58 srl %g1, 31, %g3
60 ! CHECK: sra %g1, %g2, %g3 ! encoding: [0x87,0x38,0x40,0x02]
61 sra %g1, %g2, %g3
62 ! CHECK: sra %g1, 31, %g3 ! encoding: [0x87,0x38,0x60,0x1f]
63 sra %g1, 31, %g3
65 ! CHECK: sub %g1, %g2, %g3 ! encoding: [0x86,0x20,0x40,0x02]
66 sub %g1, %g2, %g3
67 ! CHECK: subcc %g1, %g2, %g3 ! encoding: [0x86,0xa0,0x40,0x02]
68 subcc %g1, %g2, %g3
70 ! CHECK: subxcc %g1, %g2, %g3 ! encoding: [0x86,0xe0,0x40,0x02]
71 subxcc %g1, %g2, %g3
73 ! CHECK: mov %g1, %g3 ! encoding: [0x86,0x10,0x00,0x01]
74 mov %g1, %g3
76 ! CHECK: mov 255, %g3 ! encoding: [0x86,0x10,0x20,0xff]
77 mov 0xff, %g3
79 ! CHECK: restore %g0, %g0, %g1 ! encoding: [0x83,0xe8,0x00,0x00]
80 restore %g0, %g0, %g1
82 ! CHECK: addx %g2, %g1, %g3 ! encoding: [0x86,0x40,0x80,0x01]
83 addx %g2, %g1, %g3
85 ! CHECK: subx %g2, %g1, %g3 ! encoding: [0x86,0x60,0x80,0x01]
86 subx %g2, %g1, %g3
88 ! CHECK: umulcc %g2, %g1, %g3 ! encoding: [0x86,0xd0,0x80,0x01]
89 umulcc %g2, %g1, %g3
91 ! CHECK: smulcc %g2, %g1, %g3 ! encoding: [0x86,0xd8,0x80,0x01]
92 smulcc %g2, %g1, %g3
94 ! CHECK: mulscc %g2, %g1, %g3 ! encoding: [0x87,0x20,0x80,0x01]
95 mulscc %g2, %g1, %g3
97 ! CHECK: mulscc %g2, 254, %g3 ! encoding: [0x87,0x20,0xa0,0xfe]
98 mulscc %g2, 254, %g3
100 ! CHECK: udivcc %g2, %g1, %g3 ! encoding: [0x86,0xf0,0x80,0x01]
101 udivcc %g2, %g1, %g3
103 ! CHECK: sdivcc %g2, %g1, %g3 ! encoding: [0x86,0xf8,0x80,0x01]
104 sdivcc %g2, %g1, %g3
106 ! CHECK: andcc %g2, %g1, %g3 ! encoding: [0x86,0x88,0x80,0x01]
107 andcc %g2, %g1, %g3
109 ! CHECK: andncc %g2, %g1, %g3 ! encoding: [0x86,0xa8,0x80,0x01]
110 andncc %g2, %g1, %g3
112 ! CHECK: orcc %g2, %g1, %g3 ! encoding: [0x86,0x90,0x80,0x01]
113 orcc %g2, %g1, %g3
115 ! CHECK: orncc %g2, %g1, %g3 ! encoding: [0x86,0xb0,0x80,0x01]
116 orncc %g2, %g1, %g3
118 ! CHECK: xorcc %g2, %g1, %g3 ! encoding: [0x86,0x98,0x80,0x01]
119 xorcc %g2, %g1, %g3
121 ! CHECK: xnorcc %g2, %g1, %g3 ! encoding: [0x86,0xb8,0x80,0x01]
122 xnorcc %g2, %g1, %g3
124 ! CHECK: taddcc %g2, %g1, %g3 ! encoding: [0x87,0x00,0x80,0x01]
125 taddcc %g2, %g1, %g3
127 ! CHECK: tsubcc %g2, %g1, %g3 ! encoding: [0x87,0x08,0x80,0x01]
128 tsubcc %g2, %g1, %g3
130 ! CHECK: taddcctv %g2, %g1, %g3 ! encoding: [0x87,0x10,0x80,0x01]
131 taddcctv %g2, %g1, %g3
133 ! CHECK: tsubcctv %g2, %g1, %g3 ! encoding: [0x87,0x18,0x80,0x01]
134 tsubcctv %g2, %g1, %g3