1$AT = '@';
2print <<END
3.text
4	.type _start,${AT}function
5_start:
6
7	add r101 = r102, r103
8(p1)	add r104 = r105, r106
9	add r107 = r108, r109, 1
10(p2)	add r110 = r111, r112, 1
11
12	adds r20 = 0, r10
13(p1)	adds r21 = 1, r10
14	adds r22 = -1, r10
15	adds r23 = -0x2000, r10
16(p2)	adds r24 = 0x1FFF, r10
17
18	addl r30 = 0, r1
19	addl r31 = 1, r1
20(p1)	addl r32 = -1, r1
21	addl r33 = -0x2000, r1
22	addl r34 = 0x1FFF, r1
23	addl r35 = -0x200000, r1
24	addl r36 = 0x1FFFFF, r1
25
26	add r11 = 0, r10
27	add r12 = 0x1234, r10
28	add r13 = 0x1234, r1
29	add r14 = 0x12345, r1
30
31	addp4 r20 = r3, r10
32(p1)	addp4 r21 = 1, r10
33	addp4 r22 = -1, r10
34
35	sub r101 = r102, r103
36(p2)	sub r110 = r111, r112, 1
37	sub r120 = 0, r3
38	sub r121 = 1, r3
39	sub r122 = -1, r3
40	sub r123 = -128, r3
41	sub r124 = 127, r3
42
43	and r8 = r9, r10
44(p3)	and r11 = -128, r12
45
46(p4)	or r8 = r9, r10
47	or r11 = -128, r12
48
49	xor r8 = r9, r10
50	xor r11 = -128, r12
51
52	andcm r8 = r9, r10
53	andcm r11 = -128, r12
54
55	shladd r8 = r30, 1, r31
56	shladd r9 = r30, 2, r31
57	shladd r10 = r30, 3, r31
58	shladd r11 = r30, 4, r31
59
60	shladdp4 r8 = r30, 1, r31
61	shladdp4 r9 = r30, 2, r31
62	shladdp4 r10 = r30, 3, r31
63	shladdp4 r11 = r30, 4, r31
64
65	padd1 r10 = r30, r31
66	padd1.sss r11 = r30, r31
67	padd1.uus r12 = r30, r31
68	padd1.uuu r13 = r30, r31
69	padd2 r14 = r30, r31
70	padd2.sss r15 = r30, r31
71	padd2.uus r16 = r30, r31
72	padd2.uuu r17 = r30, r31
73	padd4 r18 = r30, r31
74
75	psub1 r10 = r30, r31
76	psub1.sss r11 = r30, r31
77	psub1.uus r12 = r30, r31
78	psub1.uuu r13 = r30, r31
79	psub2 r14 = r30, r31
80	psub2.sss r15 = r30, r31
81	psub2.uus r16 = r30, r31
82	psub2.uuu r17 = r30, r31
83	psub4 r18 = r30, r31
84
85	pavg1 r10 = r30, r31
86	pavg1.raz r10 = r30, r31
87	pavg2 r10 = r30, r31
88	pavg2.raz r10 = r30, r31
89
90	pavgsub1 r10 = r30, r31
91	pavgsub2 r10 = r30, r31
92
93	pcmp1.eq r10 = r30, r31
94	pcmp2.eq r10 = r30, r31
95	pcmp4.eq r10 = r30, r31
96	pcmp1.gt r10 = r30, r31
97	pcmp2.gt r10 = r30, r31
98	pcmp4.gt r10 = r30, r31
99
100	pshladd2 r10 = r11, 1, r12
101	pshladd2 r10 = r11, 3, r12
102
103	pshradd2 r10 = r11, 1, r12
104	pshradd2 r10 = r11, 2, r12
105
106END
107;
108
109@cmp2 = ( ".eq", ".ne" );
110@cmp6 = ( @cmp2, ".lt", ".le", ".gt", ".ge" );
111@cmp10 = ( @cmp6, ".ltu", ".leu", ".gtu", ".geu" );
112
113@ctype = ( ".and", ".or", ".or.andcm", ".orcm", ".andcm", ".and.orcm" );
114
115foreach $C ( "cmp", "cmp4" ) {
116  foreach $u ( "", ".unc" ) {
117    foreach $i (@cmp10) {
118      print "\t${C}${i}${u} p2, p3 = r3, r4\n";
119      print "\t${C}${i}${u} p2, p3 = 3, r4\n";
120    }
121    print "\n";
122  }
123
124  foreach $i (@cmp2) {
125    foreach $c (@ctype) {
126      print "\t${C}${i}${c} p2, p3 = r3, r4\n";
127      print "\t${C}${i}${c} p2, p3 = 3, r4\n";
128    }
129    print "\n";
130  }
131
132  foreach $i (@cmp6) {
133    foreach $c (@ctype) {
134      print "\t${C}${i}${c} p2, p3 = r0, r4\n";
135      print "\t${C}${i}${c} p2, p3 = r4, r0\n";
136    }
137    print "\n";
138  }
139}
140
141# Pad to a bundle boundary with known nops.
142print "nop.i 0; nop.i 0\n";
143