1 1.1 christos # Intel(r) Wireless MMX(tm) technology testcase for WUNPCKEL 2 1.1 christos # mach: xscale 3 1.1 christos # as: -mcpu=xscale+iwmmxt 4 1.1 christos 5 1.1 christos .include "testutils.inc" 6 1.1 christos 7 1.1 christos start 8 1.1 christos 9 1.1 christos .global wunpckel 10 1.1 christos wunpckel: 11 1.1 christos # Enable access to CoProcessors 0 & 1 before 12 1.1 christos # we attempt these instructions. 13 1.1 christos 14 1.1 christos mvi_h_gr r1, 3 15 1.1 christos mcr p15, 0, r1, cr15, cr1, 0 16 1.1 christos 17 1.1 christos # Test Unsigned Byte Unpacking 18 1.1 christos 19 1.1 christos mvi_h_gr r0, 0x12345687 20 1.1 christos mvi_h_gr r1, 0x9abcdef0 21 1.1 christos mvi_h_gr r2, 0 22 1.1 christos mvi_h_gr r3, 0 23 1.1 christos 24 1.1 christos tmcrr wr0, r0, r1 25 1.1 christos tmcrr wr1, r2, r3 26 1.1 christos 27 1.1 christos wunpckelub wr1, wr0 28 1.1 christos 29 1.1 christos tmrrc r0, r1, wr0 30 1.1 christos tmrrc r2, r3, wr1 31 1.1 christos 32 1.1 christos test_h_gr r0, 0x12345687 33 1.1 christos test_h_gr r1, 0x9abcdef0 34 1.1 christos test_h_gr r2, 0x00560087 35 1.1 christos test_h_gr r3, 0x00120034 36 1.1 christos 37 1.1 christos # Test Signed Byte Unpacking 38 1.1 christos 39 1.1 christos mvi_h_gr r0, 0x12345687 40 1.1 christos mvi_h_gr r1, 0x9abcdef0 41 1.1 christos mvi_h_gr r2, 0 42 1.1 christos mvi_h_gr r3, 0 43 1.1 christos 44 1.1 christos tmcrr wr0, r0, r1 45 1.1 christos tmcrr wr1, r2, r3 46 1.1 christos 47 1.1 christos wunpckelsb wr1, wr0 48 1.1 christos 49 1.1 christos tmrrc r0, r1, wr0 50 1.1 christos tmrrc r2, r3, wr1 51 1.1 christos 52 1.1 christos test_h_gr r0, 0x12345687 53 1.1 christos test_h_gr r1, 0x9abcdef0 54 1.1 christos test_h_gr r2, 0x0056ff87 55 1.1 christos test_h_gr r3, 0x00120034 56 1.1 christos 57 1.1 christos # Test Unsigned Halfword Unpacking 58 1.1 christos 59 1.1 christos mvi_h_gr r0, 0x12345678 60 1.1 christos mvi_h_gr r1, 0x9abcdef0 61 1.1 christos mvi_h_gr r2, 0 62 1.1 christos mvi_h_gr r3, 0 63 1.1 christos 64 1.1 christos tmcrr wr0, r0, r1 65 1.1 christos tmcrr wr1, r2, r3 66 1.1 christos 67 1.1 christos wunpckeluh wr1, wr0 68 1.1 christos 69 1.1 christos tmrrc r0, r1, wr0 70 1.1 christos tmrrc r2, r3, wr1 71 1.1 christos 72 1.1 christos test_h_gr r0, 0x12345678 73 1.1 christos test_h_gr r1, 0x9abcdef0 74 1.1 christos test_h_gr r2, 0x00005678 75 1.1 christos test_h_gr r3, 0x00001234 76 1.1 christos 77 1.1 christos # Test Signed Halfword Unpacking 78 1.1 christos 79 1.1 christos mvi_h_gr r0, 0x12348678 80 1.1 christos mvi_h_gr r1, 0x9abcdef0 81 1.1 christos mvi_h_gr r2, 0 82 1.1 christos mvi_h_gr r3, 0 83 1.1 christos 84 1.1 christos tmcrr wr0, r0, r1 85 1.1 christos tmcrr wr1, r2, r3 86 1.1 christos 87 1.1 christos wunpckelsh wr1, wr0 88 1.1 christos 89 1.1 christos tmrrc r0, r1, wr0 90 1.1 christos tmrrc r2, r3, wr1 91 1.1 christos 92 1.1 christos test_h_gr r0, 0x12348678 93 1.1 christos test_h_gr r1, 0x9abcdef0 94 1.1 christos test_h_gr r2, 0xffff8678 95 1.1 christos test_h_gr r3, 0x00001234 96 1.1 christos 97 1.1 christos # Test Unsigned Word Unpacking 98 1.1 christos 99 1.1 christos mvi_h_gr r0, 0x12345678 100 1.1 christos mvi_h_gr r1, 0x9abcdef0 101 1.1 christos mvi_h_gr r2, 0 102 1.1 christos mvi_h_gr r3, 0 103 1.1 christos 104 1.1 christos tmcrr wr0, r0, r1 105 1.1 christos tmcrr wr1, r2, r3 106 1.1 christos 107 1.1 christos wunpckeluw wr1, wr0 108 1.1 christos 109 1.1 christos tmrrc r0, r1, wr0 110 1.1 christos tmrrc r2, r3, wr1 111 1.1 christos 112 1.1 christos test_h_gr r0, 0x12345678 113 1.1 christos test_h_gr r1, 0x9abcdef0 114 1.1 christos test_h_gr r2, 0x12345678 115 1.1 christos test_h_gr r3, 0x00000000 116 1.1 christos 117 1.1 christos # Test Signed Word Unpacking 118 1.1 christos 119 1.1 christos mvi_h_gr r0, 0x82345678 120 1.1 christos mvi_h_gr r1, 0x9abcdef0 121 1.1 christos mvi_h_gr r2, 0 122 1.1 christos mvi_h_gr r3, 0 123 1.1 christos 124 1.1 christos tmcrr wr0, r0, r1 125 1.1 christos tmcrr wr1, r2, r3 126 1.1 christos 127 1.1 christos wunpckelsw wr1, wr0 128 1.1 christos 129 1.1 christos tmrrc r0, r1, wr0 130 1.1 christos tmrrc r2, r3, wr1 131 1.1 christos 132 1.1 christos test_h_gr r0, 0x82345678 133 1.1 christos test_h_gr r1, 0x9abcdef0 134 1.1 christos test_h_gr r2, 0x82345678 135 1.1 christos test_h_gr r3, 0xffffffff 136 1.1 christos 137 1.1 christos pass 138