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; 271: fail 282: 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