comparison run/a/asm_pand_01_A.d @ 1285:229e630d4b1a

partuial inline asm review
author thomask
date Tue, 26 Dec 2006 14:21:37 +0000
parents 6e5d377573e1
children
comparison
equal deleted inserted replaced
1284:96e7be832c35 1285:229e630d4b1a
14 import addon.cpuinfo; 14 import addon.cpuinfo;
15 15
16 int main(){ 16 int main(){
17 haveSSE2!()(); 17 haveSSE2!()();
18 18
19 ushort* a = [cast(ushort) 19 ushort[] A = [
20 0b01101100_01101110, 0b01101001_01101101, 0b01100011_01101011, 0b11100111_01100111, 20 0b01101100_01101110, 0b01101001_01101101, 0b01100011_01101011, 0b11100111_01100111,
21 0b11000110_11100110, 0b10001101_10011011, 0b00011011_10011011, 0b01100110_00000000 21 0b11000110_11100110, 0b10001101_10011011, 0b00011011_10011011, 0b01100110_00000000
22 ]; 22 ];
23 ushort* b = [cast(ushort) 23 ushort* a = A.ptr;
24
25 ushort[] B = [
24 0b10000000_11000000, 0b01000000_01100000, 0b00100000_00110000, 0b00010000_00011000, 26 0b10000000_11000000, 0b01000000_01100000, 0b00100000_00110000, 0b00010000_00011000,
25 0b00001000_00001100, 0b00000100_00000110, 0b00000010_00000011, 0b11111111_10101010 27 0b00001000_00001100, 0b00000100_00000110, 0b00000010_00000011, 0b11111111_10101010
26 ]; 28 ];
27 ushort* c = new ushort[8]; 29 ushort* b = B.ptr;
30
31 ushort* c = (new ushort[8]).ptr;
28 32
29 static if(size_t.sizeof == 4){ 33 static if(size_t.sizeof == 4){
30 asm{ 34 asm{
31 mov EAX, a; 35 mov EAX, a;
32 movdqu XMM0, [EAX]; 36 movdqu XMM0, [EAX];