Home | History | Annotate | Line # | Download | only in iwmmxt
      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