• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1;test all the shifted and signextending adds and subs with and without consts
2;
3; RUN: llc < %s -march=alpha -o %t.s
4; RUN: grep {	addl} %t.s | count 2
5; RUN: grep {	addq} %t.s | count 2
6; RUN: grep {	subl} %t.s | count 2
7; RUN: grep {	subq} %t.s | count 2
8;
9; RUN: grep {s4addl} %t.s | count 2
10; RUN: grep {s8addl} %t.s | count 2
11; RUN: grep {s4addq} %t.s | count 2
12; RUN: grep {s8addq} %t.s | count 2
13;
14; RUN: grep {s4subl} %t.s | count 2
15; RUN: grep {s8subl} %t.s | count 2
16; RUN: grep {s4subq} %t.s | count 2
17; RUN: grep {s8subq} %t.s | count 2
18
19
20define signext i32 @al(i32 signext %x.s, i32 signext %y.s) {
21entry:
22	%tmp.3.s = add i32 %y.s, %x.s		; <i32> [#uses=1]
23	ret i32 %tmp.3.s
24}
25
26define signext i32 @ali(i32 signext %x.s)  {
27entry:
28	%tmp.3.s = add i32 100, %x.s		; <i32> [#uses=1]
29	ret i32 %tmp.3.s
30}
31
32define signext i64 @aq(i64 signext %x.s, i64 signext %y.s)  {
33entry:
34	%tmp.3.s = add i64 %y.s, %x.s		; <i64> [#uses=1]
35	ret i64 %tmp.3.s
36}
37
38define i64 @aqi(i64 %x.s) {
39entry:
40	%tmp.3.s = add i64 100, %x.s		; <i64> [#uses=1]
41	ret i64 %tmp.3.s
42}
43
44define signext i32 @sl(i32 signext %x.s, i32 signext %y.s)  {
45entry:
46	%tmp.3.s = sub i32 %y.s, %x.s		; <i32> [#uses=1]
47	ret i32 %tmp.3.s
48}
49
50define signext i32 @sli(i32 signext %x.s)  {
51entry:
52	%tmp.3.s = sub i32 %x.s, 100		; <i32> [#uses=1]
53	ret i32 %tmp.3.s
54}
55
56define i64 @sq(i64 %x.s, i64 %y.s) {
57entry:
58	%tmp.3.s = sub i64 %y.s, %x.s		; <i64> [#uses=1]
59	ret i64 %tmp.3.s
60}
61
62define i64 @sqi(i64 %x.s) {
63entry:
64	%tmp.3.s = sub i64 %x.s, 100		; <i64> [#uses=1]
65	ret i64 %tmp.3.s
66}
67
68define signext i32 @a4l(i32 signext %x.s, i32 signext %y.s)  {
69entry:
70	%tmp.1.s = shl i32 %y.s, 2		; <i32> [#uses=1]
71	%tmp.3.s = add i32 %tmp.1.s, %x.s		; <i32> [#uses=1]
72	ret i32 %tmp.3.s
73}
74
75define signext i32 @a8l(i32 signext %x.s, i32 signext %y.s)  {
76entry:
77	%tmp.1.s = shl i32 %y.s, 3		; <i32> [#uses=1]
78	%tmp.3.s = add i32 %tmp.1.s, %x.s		; <i32> [#uses=1]
79	ret i32 %tmp.3.s
80}
81
82define i64 @a4q(i64 %x.s, i64 %y.s) {
83entry:
84	%tmp.1.s = shl i64 %y.s, 2		; <i64> [#uses=1]
85	%tmp.3.s = add i64 %tmp.1.s, %x.s		; <i64> [#uses=1]
86	ret i64 %tmp.3.s
87}
88
89define i64 @a8q(i64 %x.s, i64 %y.s) {
90entry:
91	%tmp.1.s = shl i64 %y.s, 3		; <i64> [#uses=1]
92	%tmp.3.s = add i64 %tmp.1.s, %x.s		; <i64> [#uses=1]
93	ret i64 %tmp.3.s
94}
95
96define signext i32 @a4li(i32 signext %y.s)  {
97entry:
98	%tmp.1.s = shl i32 %y.s, 2		; <i32> [#uses=1]
99	%tmp.3.s = add i32 100, %tmp.1.s		; <i32> [#uses=1]
100	ret i32 %tmp.3.s
101}
102
103define signext i32 @a8li(i32 signext %y.s)  {
104entry:
105	%tmp.1.s = shl i32 %y.s, 3		; <i32> [#uses=1]
106	%tmp.3.s = add i32 100, %tmp.1.s		; <i32> [#uses=1]
107	ret i32 %tmp.3.s
108}
109
110define i64 @a4qi(i64 %y.s) {
111entry:
112	%tmp.1.s = shl i64 %y.s, 2		; <i64> [#uses=1]
113	%tmp.3.s = add i64 100, %tmp.1.s		; <i64> [#uses=1]
114	ret i64 %tmp.3.s
115}
116
117define i64 @a8qi(i64 %y.s) {
118entry:
119	%tmp.1.s = shl i64 %y.s, 3		; <i64> [#uses=1]
120	%tmp.3.s = add i64 100, %tmp.1.s		; <i64> [#uses=1]
121	ret i64 %tmp.3.s
122}
123
124define signext i32 @s4l(i32 signext %x.s, i32 signext %y.s)  {
125entry:
126	%tmp.1.s = shl i32 %y.s, 2		; <i32> [#uses=1]
127	%tmp.3.s = sub i32 %tmp.1.s, %x.s		; <i32> [#uses=1]
128	ret i32 %tmp.3.s
129}
130
131define signext i32 @s8l(i32 signext %x.s, i32 signext %y.s)  {
132entry:
133	%tmp.1.s = shl i32 %y.s, 3		; <i32> [#uses=1]
134	%tmp.3.s = sub i32 %tmp.1.s, %x.s		; <i32> [#uses=1]
135	ret i32 %tmp.3.s
136}
137
138define i64 @s4q(i64 %x.s, i64 %y.s) {
139entry:
140	%tmp.1.s = shl i64 %y.s, 2		; <i64> [#uses=1]
141	%tmp.3.s = sub i64 %tmp.1.s, %x.s		; <i64> [#uses=1]
142	ret i64 %tmp.3.s
143}
144
145define i64 @s8q(i64 %x.s, i64 %y.s) {
146entry:
147	%tmp.1.s = shl i64 %y.s, 3		; <i64> [#uses=1]
148	%tmp.3.s = sub i64 %tmp.1.s, %x.s		; <i64> [#uses=1]
149	ret i64 %tmp.3.s
150}
151
152define signext i32 @s4li(i32 signext %y.s)  {
153entry:
154	%tmp.1.s = shl i32 %y.s, 2		; <i32> [#uses=1]
155	%tmp.3.s = sub i32 %tmp.1.s, 100		; <i32> [#uses=1]
156	ret i32 %tmp.3.s
157}
158
159define signext i32 @s8li(i32 signext %y.s)  {
160entry:
161	%tmp.1.s = shl i32 %y.s, 3		; <i32> [#uses=1]
162	%tmp.3.s = sub i32 %tmp.1.s, 100		; <i32> [#uses=1]
163	ret i32 %tmp.3.s
164}
165
166define i64 @s4qi(i64 %y.s) {
167entry:
168	%tmp.1.s = shl i64 %y.s, 2		; <i64> [#uses=1]
169	%tmp.3.s = sub i64 %tmp.1.s, 100		; <i64> [#uses=1]
170	ret i64 %tmp.3.s
171}
172
173define i64 @s8qi(i64 %y.s) {
174entry:
175	%tmp.1.s = shl i64 %y.s, 3		; <i64> [#uses=1]
176	%tmp.3.s = sub i64 %tmp.1.s, 100		; <i64> [#uses=1]
177	ret i64 %tmp.3.s
178}
179