aboutsummaryrefslogtreecommitdiff
path: root/sim/testsuite/bfin/vit_max2.s
blob: b7c6a0e24ce73da4c99269801faf7b93224f6f41 (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
# Blackfin testcase for parallel VIT_MAX (taken from PRM)
# mach: bfin

	.include "testutils.inc"

	start

	loadsym P0, scratch

	# Do parallel VIT_MAX's with stores to same reg; don't really
	# care what the result is of VIT_MAX as long as it doesn't
	# clobber the memory store.

	imm32 R1, 0xFFFF0000
	imm32 R2, 0x0000FFFF
	imm32 R0, 0xFACE
	R0 = VIT_MAX (R1, R2) (ASL) || W[P0] = R0.L;
	imm32 R0, 0xFACE
	R4 = W[P0];
	CC = R4 == R0;
	IF !CC JUMP 1f;

	imm32 R5, 0xFEEDBEEF
	imm32 R4, 0xDEAF0000
	imm32 R6, 0xFACE
	R6 = VIT_MAX (R5, R4) (ASR) || W[P0] = R6.L;
	imm32 R6, 0xFACE
	R4 = W[P0];
	CC = R4 == R6;
	IF !CC JUMP 1f;

	imm32 R3, 0xFFFF0000
	imm32 R1, 0xFACE
	R1.L = VIT_MAX (R3) (ASL) || W[P0] = R1.L;
	imm32 R1, 0xFACE
	R4 = W[P0];
	CC = R4 == R1;
	IF !CC JUMP 1f;

	imm32 R2, 0x1234FADE
	imm32 R5, 0xFACE
	R5.L = VIT_MAX (R2) (ASR) || W[P0] = R5.L;
	imm32 R5, 0xFACE
	R4 = W[P0];
	CC = R4 == R5;
	IF !CC JUMP 1f;

	pass
1:	fail

	.data
scratch:
	.dw 0xffff