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