1 1.1 christos # Intel(r) Wireless MMX(tm) technology testcase for WAVG2 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 wavg2 10 1.1 christos wavg2: 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 Byte Wide Averaging 18 1.1 christos 19 1.1 christos mvi_h_gr r0, 0x12345678 20 1.1 christos mvi_h_gr r1, 0x9abcdef0 21 1.1 christos mvi_h_gr r2, 0x11111111 22 1.1 christos mvi_h_gr r3, 0x22222222 23 1.1 christos mvi_h_gr r4, 0 24 1.1 christos mvi_h_gr r5, 0 25 1.1 christos 26 1.1 christos tmcrr wr0, r0, r1 27 1.1 christos tmcrr wr1, r2, r3 28 1.1 christos tmcrr wr2, r4, r5 29 1.1 christos 30 1.1 christos wavg2b wr2, wr0, wr1 31 1.1 christos 32 1.1 christos tmrrc r0, r1, wr0 33 1.1 christos tmrrc r2, r3, wr1 34 1.1 christos tmrrc r4, r5, wr2 35 1.1 christos 36 1.1 christos test_h_gr r0, 0x12345678 37 1.1 christos test_h_gr r1, 0x9abcdef0 38 1.1 christos test_h_gr r2, 0x11111111 39 1.1 christos test_h_gr r3, 0x22222222 40 1.1 christos test_h_gr r4, 0x11223344 41 1.1 christos test_h_gr r5, 0x5e6f8089 42 1.1 christos 43 1.1 christos # Test Byte Wide Averaging with Rounding 44 1.1 christos 45 1.1 christos mvi_h_gr r0, 0x12345678 46 1.1 christos mvi_h_gr r1, 0x9abcdef0 47 1.1 christos mvi_h_gr r2, 0x11111111 48 1.1 christos mvi_h_gr r3, 0x22222222 49 1.1 christos mvi_h_gr r4, 0 50 1.1 christos mvi_h_gr r5, 0 51 1.1 christos 52 1.1 christos tmcrr wr0, r0, r1 53 1.1 christos tmcrr wr1, r2, r3 54 1.1 christos tmcrr wr2, r4, r5 55 1.1 christos 56 1.1 christos wavg2br wr2, wr0, wr1 57 1.1 christos 58 1.1 christos tmrrc r0, r1, wr0 59 1.1 christos tmrrc r2, r3, wr1 60 1.1 christos tmrrc r4, r5, wr2 61 1.1 christos 62 1.1 christos test_h_gr r0, 0x12345678 63 1.1 christos test_h_gr r1, 0x9abcdef0 64 1.1 christos test_h_gr r2, 0x11111111 65 1.1 christos test_h_gr r3, 0x22222222 66 1.1 christos test_h_gr r4, 0x12233445 67 1.1 christos test_h_gr r5, 0x5e6f8089 68 1.1 christos 69 1.1 christos # Test Half Word Wide Averaging 70 1.1 christos 71 1.1 christos mvi_h_gr r0, 0x12345678 72 1.1 christos mvi_h_gr r1, 0x9abcdef0 73 1.1 christos mvi_h_gr r2, 0x11111111 74 1.1 christos mvi_h_gr r3, 0x22222222 75 1.1 christos mvi_h_gr r4, 0 76 1.1 christos mvi_h_gr r5, 0 77 1.1 christos 78 1.1 christos tmcrr wr0, r0, r1 79 1.1 christos tmcrr wr1, r2, r3 80 1.1 christos tmcrr wr2, r4, r5 81 1.1 christos 82 1.1 christos wavg2h wr2, wr0, wr1 83 1.1 christos 84 1.1 christos tmrrc r0, r1, wr0 85 1.1 christos tmrrc r2, r3, wr1 86 1.1 christos tmrrc r4, r5, wr2 87 1.1 christos 88 1.1 christos test_h_gr r0, 0x12345678 89 1.1 christos test_h_gr r1, 0x9abcdef0 90 1.1 christos test_h_gr r2, 0x11111111 91 1.1 christos test_h_gr r3, 0x22222222 92 1.1 christos test_h_gr r4, 0x11a233c4 93 1.1 christos test_h_gr r5, 0x5e6f8089 94 1.1 christos 95 1.1 christos # Test Half Word Wide Averaging with Rounding 96 1.1 christos 97 1.1 christos mvi_h_gr r0, 0x12345678 98 1.1 christos mvi_h_gr r1, 0x9abcdef0 99 1.1 christos mvi_h_gr r2, 0x11111111 100 1.1 christos mvi_h_gr r3, 0x22222222 101 1.1 christos mvi_h_gr r4, 0 102 1.1 christos mvi_h_gr r5, 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 tmcrr wr2, r4, r5 107 1.1 christos 108 1.1 christos wavg2hr wr2, wr0, wr1 109 1.1 christos 110 1.1 christos tmrrc r0, r1, wr0 111 1.1 christos tmrrc r2, r3, wr1 112 1.1 christos tmrrc r4, r5, wr2 113 1.1 christos 114 1.1 christos test_h_gr r0, 0x12345678 115 1.1 christos test_h_gr r1, 0x9abcdef0 116 1.1 christos test_h_gr r2, 0x11111111 117 1.1 christos test_h_gr r3, 0x22222222 118 1.1 christos test_h_gr r4, 0x11a333c5 119 1.1 christos test_h_gr r5, 0x5e6f8089 120 1.1 christos 121 1.1 christos pass 122