1*97ec5308Schristos# sh testcase for beq$likely $rm, $rn, $tra -*- Asm -*-
2*97ec5308Schristos# mach: all
3*97ec5308Schristos# as: -isa=shmedia
4*97ec5308Schristos# ld: -m shelf64
5*97ec5308Schristos
6*97ec5308Schristos	.include "media/testutils.inc"
7*97ec5308Schristos
8*97ec5308Schristos	start
9*97ec5308Schristos
10*97ec5308Schristos	.global beq
11*97ec5308Schristosinit:
12*97ec5308Schristos	# Load up the branch target registers.
13*97ec5308Schristos	pta beq2, tr0
14*97ec5308Schristos	pta beq3, tr1
15*97ec5308Schristos	pta wrong, tr2
16*97ec5308Schristos
17*97ec5308Schristosbeq1:
18*97ec5308Schristos	# Compare r0 with itself.
19*97ec5308Schristos	# Always true, so branch likely.
20*97ec5308Schristos	movi 1, r0
21*97ec5308Schristos	beq/l r0, r0, tr0
22*97ec5308Schristos	# We should branch over this.
23*97ec5308Schristos	fail
24*97ec5308Schristos
25*97ec5308Schristosbeq2:
26*97ec5308Schristos	# Ensure high order bits are compared, too.
27*97ec5308Schristos	movi 1, r0
28*97ec5308Schristos	shlli r0, 35, r0
29*97ec5308Schristos	addi r0, 10, r0
30*97ec5308Schristos	movi 1, r1
31*97ec5308Schristos	shlli r1, 35, r1
32*97ec5308Schristos	addi r1, 10, r1
33*97ec5308Schristos	beq r0, r1, tr1
34*97ec5308Schristos	# We should branch over this, too.
35*97ec5308Schristos	fail
36*97ec5308Schristos
37*97ec5308Schristosbeq3:
38*97ec5308Schristos	movi 1, r0
39*97ec5308Schristos	shlli r0, 35, r0
40*97ec5308Schristos	addi r0, 10, r0
41*97ec5308Schristos	movi 2, r1
42*97ec5308Schristos	shlli r1, 35, r1
43*97ec5308Schristos	addi r1, 9, r1
44*97ec5308Schristos	# Unlikely we'll branch!
45*97ec5308Schristos	beq/u r0, r1, tr2
46*97ec5308Schristos	# We should proceed to pass here.
47*97ec5308Schristos
48*97ec5308Schristosokay:
49*97ec5308Schristos	pass
50*97ec5308Schristos
51*97ec5308Schristoswrong:
52*97ec5308Schristos	fail
53