summaryrefslogtreecommitdiff
path: root/sim/testsuite/sim/sh64/media/mpermw.cgs
blob: 3b6741e8107e4242c91c9232c42cc9cf8365190d (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
# sh testcase for mperm.w $rm, $rn, $rd -*- Asm -*-
# mach: all
# as: -isa=shmedia
# ld: -m shelf64

	.include "media/testutils.inc"

	start
init:
	pta wrong, tr0
	movi 27, r1
	movi 0x1020, r0
	shlli r0, 8, r0
	ori r0, 0x30, r0
	shlli r0, 8, r0
	ori r0, 0x40, r0
	shlli r0, 8, r0
	ori r0, 0x50, r0
	shlli r0, 8, r0
	ori r0, 0x60, r0
	shlli r0, 8, r0
	ori r0, 0x70, r0
	shlli r0, 8, r0
	ori r0, 0x80, r0

mpermw:
	mperm.w r0, r1, r2

check:
	# Expect 0x7080506030401020.
	movi 0x7080, r0
	shlli r0, 8, r0
	ori r0, 0x50, r0
	shlli r0, 8, r0
	ori r0, 0x60, r0
	shlli r0, 8, r0
	ori r0, 0x30, r0
	shlli r0, 8, r0
	ori r0, 0x40, r0
	shlli r0, 8, r0
	ori r0, 0x10, r0
	shlli r0, 8, r0
	ori r0, 0x20, r0

	bne r0, r2, tr0

okay:
	pass

wrong:
	fail