summaryrefslogtreecommitdiff
path: root/sim/testsuite/sim/sh64/media/beq.cgs
blob: 6f96ffdf00f359cd37ef6d18ec92e7ec36308361 (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
# sh testcase for beq$likely $rm, $rn, $tra -*- Asm -*-
# mach: all
# as: -isa=shmedia
# ld: -m shelf64

	.include "media/testutils.inc"

	start

	.global beq
init:
	# Load up the branch target registers.
	pta beq2, tr0
	pta beq3, tr1
	pta wrong, tr2

beq1:
	# Compare r0 with itself.
	# Always true, so branch likely.
	movi 1, r0
	beq/l r0, r0, tr0
	# We should branch over this.
	fail

beq2:	
	# Ensure high order bits are compared, too.
	movi 1, r0
	shlli r0, 35, r0
	addi r0, 10, r0
	movi 1, r1
	shlli r1, 35, r1
	addi r1, 10, r1
	beq r0, r1, tr1
	# We should branch over this, too.
	fail

beq3:
	movi 1, r0
	shlli r0, 35, r0
	addi r0, 10, r0
	movi 2, r1
	shlli r1, 35, r1
	addi r1, 9, r1
	# Unlikely we'll branch!
	beq/u r0, r1, tr2
	# We should proceed to pass here.

okay:
	pass

wrong:
	fail