summaryrefslogtreecommitdiff
path: root/sim/testsuite/sim/frv/fr400/slass.cgs
blob: 3e8bcac2f94d1ef7a85820fe3057d0f11214c620 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# frv testcase for slass $GRi,$GRj,$GRk
# mach: fr405 fr450

	.include "../testutils.inc"

	start

	.global sll
slass0:
	set_gr_immed  	0,gr7			; Shift by 0
	set_gr_immed   	2,gr8
	slass      	gr8,gr7,gr6
	test_gr_immed  	2,gr8
	test_gr_immed	0,gr7
	test_gr_immed  	2,gr6
slass1:
	set_gr_immed  	1,gr7			; Shift by 1
	set_gr_immed   	2,gr8
	slass      	gr8,gr7,gr6
	test_gr_immed  	2,gr8
	test_gr_immed	1,gr7
	test_gr_immed  	4,gr6

slass2:
	set_gr_immed  	31,gr7			; Shift 1 by 31
	set_gr_immed   	1,gr8
	slass      	gr8,gr7,gr6
	test_gr_immed  	1,gr8
	test_gr_immed	31,gr7
	test_gr_limmed	0x7fff,0xffff,gr6

slass3:
	set_gr_immed  	31,gr7			; Shift -1 by 31
	set_gr_immed   	-1,gr8
	slass      	gr8,gr7,gr6
	test_gr_immed  	-1,gr8
	test_gr_immed	31,gr7
	test_gr_limmed	0x8000,0x0000,gr6

slass4:
	set_gr_immed  	14,gr7			; Shift 0xffff0000 by 14
	set_gr_limmed	0xffff,0x0000,gr8
	slass      	gr8,gr7,gr6
	test_gr_limmed	0xffff,0x0000,gr8
	test_gr_immed	14,gr7
	test_gr_limmed	0xc000,0x0000,gr6

slass5:
	set_gr_immed  	15,gr7			; Shift 0xffff0000 by 15
	set_gr_limmed	0xffff,0x0000,gr8
	slass      	gr8,gr7,gr6
	test_gr_limmed	0xffff,0x0000,gr8
	test_gr_immed	15,gr7
	test_gr_limmed	0x8000,0x0000,gr6

slass6:
	set_gr_immed  	20,gr7			; Shift 0xffff0000 by 20
	set_gr_limmed	0xffff,0x0000,gr8
	slass      	gr8,gr7,gr6
	test_gr_limmed	0xffff,0x0000,gr8
	test_gr_immed	20,gr7
	test_gr_limmed	0x8000,0x0000,gr6

slass7:
	set_gr_immed  	14,gr7			; Shift 0x0000ffff by 14
	set_gr_limmed	0x0000,0xffff,gr8
	slass      	gr8,gr7,gr6
	test_gr_limmed	0x0000,0xffff,gr8
	test_gr_immed	14,gr7
	test_gr_limmed	0x3fff,0xc000,gr6

slass8:
	set_gr_immed  	15,gr7			; Shift 0x0000ffff by 15
	set_gr_limmed  	0x0000,0xffff,gr8
	slass      	gr8,gr7,gr6
	test_gr_limmed	0x0000,0xffff,gr8
	test_gr_immed	15,gr7
	test_gr_limmed	0x7fff,0x8000,gr6

slass9:
	set_gr_immed  	20,gr7			; Shift 0x0000ffff by 20
	set_gr_limmed  	0x0000,0xffff,gr8
	slass      	gr8,gr7,gr6
	test_gr_limmed	0x0000,0xffff,gr8
	test_gr_immed	20,gr7
	test_gr_limmed	0x7fff,0xffff,gr6

slass10:
	set_gr_immed  	30,gr7			; Shift 1 by 30
	set_gr_immed   	1,gr8
	slass      	gr8,gr7,gr6
	test_gr_immed  	1,gr8
	test_gr_immed	30,gr7
	test_gr_limmed	0x4000,0x0000,gr6

slass11:
	set_gr_immed  	30,gr7			; Shift -1 by 30
	set_gr_immed   	-1,gr8
	slass      	gr8,gr7,gr6
	test_gr_immed  	-1,gr8
	test_gr_immed	30,gr7
	test_gr_limmed	0xc000,0000,gr6

	pass