1//Original:/testcases/seq/c_br_preg_killed_ac/c_br_preg_killed_ac.dsp
2// Spec Reference: brcc kills  data cache hits
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8	imm32 r0, 0x00000000;
9	imm32 r1, 0x00000001;
10	imm32 r2, 0x00000002;
11	imm32 r3, 0x00000003;
12	imm32 r4, 0x00000004;
13	imm32 r5, 0x00000005;
14	imm32 r6, 0x00000006;
15	imm32 r7, 0x00000007;
16	imm32 p1, 0x00000011;
17	imm32 p2, 0x00000012;
18
19	P4 = 4;
20	P2 = 2;
21	loadsym P5, DATA0;
22	loadsym I0, DATA1;
23
24begin:
25	ASTAT = R0;		// clear CC
26	IF !CC JUMP LABEL1;	// (bp);
27	CC = R4 < R5;		// CC FLAG   killed
28	R1 = 21;
29LABEL1:
30	JUMP ( PC + P4 );	//brf LABEL2;  // (bp);
31	CC = ! CC;
32LABEL2:
33	JUMP ( PC + P4 );	//brf LABEL3;  //  (bp);
34	R2 = - R2;		// ALU2op    killed
35LABEL3:
36	JUMP ( PC + P4 );	//brf LABEL4;
37	R3 <<= 2;		// LOGI2op   killed
38LABEL4:
39	JUMP ( PC + P4 );	//brf LABEL5;
40	R0 = R1 + R2;		// COMP3op   killed
41LABEL5:
42	JUMP ( PC + P4 );	//brf LABEL6;
43	R4 += 3;		// COMPI2opD killed
44LABEL6:
45	JUMP ( PC + P4 );	//brf LABEL7;  // (bp);
46	R5 = 25;		// LDIMMHALF killed
47LABEL7:
48	JUMP ( PC + P4 );	//brf LABEL8;
49	R6 = CC;		// CC2REG    killed
50LABEL8:
51	JUMP ( PC + P4 );	//brf LABEL9;
52	JUMP ( PC + P2 );	//BAD1;              // UJUMP     killed
53LABEL9:
54	JUMP ( PC + P4 );	//brf LABELCHK1;
55BAD1:
56	R7 = [ P5 ];		// LDST      killed
57
58LABELCHK1:
59	CHECKREG r0, 0x00000000;
60	CHECKREG r1, 0x00000001;
61	CHECKREG r2, 0x00000002;
62	CHECKREG r3, 0x00000003;
63	CHECKREG r4, 0x00000004;
64	CHECKREG r5, 0x00000005;
65	CHECKREG r6, 0x00000006;
66	CHECKREG r7, 0x00000007;
67
68	pass
69
70	.data
71DATA0:
72	.dd 0x000a0000
73	.dd 0x000b0001
74	.dd 0x000c0002
75	.dd 0x000d0003
76	.dd 0x000e0004
77
78DATA1:
79	.dd 0x00f00100
80	.dd 0x00e00101
81	.dd 0x00d00102
82	.dd 0x00c00103
83