Home | History | Annotate | Line # | Download | only in bfin
      1 # Blackfin testcase for BYTEOP3P
      2 # mach: bfin
      3 
      4 	.include "testutils.inc"
      5 
      6 	start
      7 
      8 	.macro check_it res:req
      9 	imm32 R7, \res
     10 	CC = R6 == R7;
     11 	IF !CC JUMP 1f;
     12 	.endm
     13 	.macro test_byteop3p i0:req, i1:req, resL:req, resH:req, resLR:req, resHR:req
     14 	dmm32 I0, \i0
     15 	dmm32 I1, \i1
     16 
     17 	R6 = BYTEOP3P (R1:0, R3:2) (LO);
     18 	check_it \resL
     19 	R6 = BYTEOP3P (R1:0, R3:2) (HI);
     20 	check_it \resH
     21 	R6 = BYTEOP3P (R1:0, R3:2) (LO, R);
     22 	check_it \resLR
     23 	R6 = BYTEOP3P (R1:0, R3:2) (HI, R);
     24 	check_it \resHR
     25 
     26 	jump 2f;
     27 1:	fail
     28 2:
     29 	.endm
     30 
     31 	imm32 R0, 0x01020304
     32 	imm32 R1, 0x10203040
     33 	imm32 R2, 0x0a0b0c0d
     34 	imm32 R3, 0xa0b0c0d0
     35 
     36 	test_byteop3p 0, 0, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     37 	test_byteop3p 0, 1, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     38 	test_byteop3p 0, 2, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     39 	test_byteop3p 0, 3, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     40 	test_byteop3p 1, 0, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     41 	test_byteop3p 1, 1, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     42 	test_byteop3p 1, 2, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     43 	test_byteop3p 1, 3, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     44 	test_byteop3p 2, 0, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     45 	test_byteop3p 2, 1, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     46 	test_byteop3p 2, 2, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     47 	test_byteop3p 2, 3, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     48 	test_byteop3p 3, 0, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     49 	test_byteop3p 3, 1, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     50 	test_byteop3p 3, 2, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     51 	test_byteop3p 3, 3, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     52 
     53 	imm32 R0, ~0x01020304
     54 	imm32 R1, ~0x10203040
     55 	imm32 R2, ~0x0a0b0c0d
     56 	imm32 R3, ~0xa0b0c0d0
     57 
     58 	test_byteop3p 0, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     59 	test_byteop3p 0, 1, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     60 	test_byteop3p 0, 2, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     61 	test_byteop3p 0, 3, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     62 	test_byteop3p 1, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     63 	test_byteop3p 1, 1, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     64 	test_byteop3p 1, 2, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     65 	test_byteop3p 1, 3, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     66 	test_byteop3p 2, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     67 	test_byteop3p 2, 1, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     68 	test_byteop3p 2, 2, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     69 	test_byteop3p 2, 3, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     70 	test_byteop3p 3, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     71 	test_byteop3p 3, 1, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     72 	test_byteop3p 3, 2, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     73 	test_byteop3p 3, 3, 0x00000000, 0x00000000, 0x00000000, 0x00000000
     74 
     75 	imm32 R0, 0x00010002
     76 	imm32 R1, 0x00030004
     77 	imm32 R2, 0x10203040
     78 	imm32 R3, 0x50607080
     79 
     80 	test_byteop3p 0, 0, 0x00110032, 0x21004200, 0x00530074, 0x63008400
     81 	test_byteop3p 0, 1, 0x00810022, 0x11003200, 0x00430064, 0x53007400
     82 	test_byteop3p 0, 2, 0x00710012, 0x81002200, 0x00330054, 0x43006400
     83 	test_byteop3p 0, 3, 0x00610082, 0x71001200, 0x00230044, 0x33005400
     84 	test_byteop3p 1, 0, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     85 	test_byteop3p 1, 1, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     86 	test_byteop3p 1, 2, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     87 	test_byteop3p 1, 3, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     88 	test_byteop3p 2, 0, 0x00140031, 0x24004100, 0x00520073, 0x62008300
     89 	test_byteop3p 2, 1, 0x00840021, 0x14003100, 0x00420063, 0x52007300
     90 	test_byteop3p 2, 2, 0x00740011, 0x84002100, 0x00320053, 0x42006300
     91 	test_byteop3p 2, 3, 0x00640081, 0x74001100, 0x00220043, 0x32005300
     92 	test_byteop3p 3, 0, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     93 	test_byteop3p 3, 1, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     94 	test_byteop3p 3, 2, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     95 	test_byteop3p 3, 3, 0x00ff00ff, 0xff00ff00, 0x00ff00ff, 0xff00ff00
     96 
     97 	imm32 R0, 0x00100200
     98 	imm32 R1, 0x30000040
     99 	imm32 R2, 0x1a2b3c4d
    100 	imm32 R3, 0x5e6f7a8b
    101 
    102 	test_byteop3p 0, 0, 0x002a00ff, 0x3b00ff00, 0x00ff00ba, 0xff00cb00
    103 	test_byteop3p 0, 1, 0x009b00ff, 0x2a00ff00, 0x00ff00af, 0xff00ba00
    104 	test_byteop3p 0, 2, 0x008a00ff, 0x9b00ff00, 0x00ff009e, 0xff00af00
    105 	test_byteop3p 0, 3, 0x007f00ff, 0x8a00ff00, 0x00ff008d, 0xff009e00
    106 	test_byteop3p 1, 0, 0x00ff00ff, 0xff00ff00, 0x008e007a, 0x9f008b00
    107 	test_byteop3p 1, 1, 0x00ff00ff, 0xff00ff00, 0x007d006f, 0x8e007a00
    108 	test_byteop3p 1, 2, 0x00ff00ff, 0xff00ff00, 0x006c005e, 0x7d006f00
    109 	test_byteop3p 1, 3, 0x00ff00ff, 0xff00ff00, 0x005b004d, 0x6c005e00
    110 	test_byteop3p 2, 0, 0x005a004c, 0x6b005d00, 0x00ff00ff, 0xff00ff00
    111 	test_byteop3p 2, 1, 0x00cb003b, 0x5a004c00, 0x00ff00ff, 0xff00ff00
    112 	test_byteop3p 2, 2, 0x00ba002a, 0xcb003b00, 0x00ff00ff, 0xff00ff00
    113 	test_byteop3p 2, 3, 0x00af009b, 0xba002a00, 0x00ff00ff, 0xff00ff00
    114 	test_byteop3p 3, 0, 0x001a00ff, 0x2b00ff00, 0x00ff00aa, 0xff00bb00
    115 	test_byteop3p 3, 1, 0x008b00ff, 0x1a00ff00, 0x00ff009f, 0xff00aa00
    116 	test_byteop3p 3, 2, 0x007a00ff, 0x8b00ff00, 0x00ff008e, 0xff009f00
    117 	test_byteop3p 3, 3, 0x006f00ff, 0x7a00ff00, 0x00ff007d, 0xff008e00
    118 
    119 	pass
    120