typedef unsigned long int UWord;
typedef unsigned long long int ULong;
+#if defined(VGO_darwin)
UChar randArray[1027] __attribute__((used));
+#else
+UChar _randArray[1027] __attribute__((used));
+#endif
#define IS_32_ALIGNED(_ptr) (0 == (0x1F & (UWord)(_ptr)))
"vpslld $25, %%xmm7, %%xmm8;"
"vpsrld $25, %%xmm8, %%xmm8;"
"vblendvps %%xmm6, %%xmm8, %%xmm7, %%xmm8;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vgatherdps %%xmm6, 3(%%r14,%%xmm8,4), %%xmm9;"
"xorl %%r14d, %%r14d")
"vpslld $25, %%ymm7, %%ymm8;"
"vpsrld $25, %%ymm8, %%ymm8;"
"vblendvps %%ymm6, %%ymm8, %%ymm7, %%ymm8;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vgatherdps %%ymm6, 3(%%r14,%%ymm8,4), %%ymm9;"
"xorl %%r14d, %%r14d")
"vpmovsxdq %%xmm6, %%xmm9;"
"vblendvpd %%xmm9, %%xmm8, %%xmm7, %%xmm8;"
"vmovdqa 96(%0), %%ymm9;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vgatherqps %%xmm6, 3(%%r14,%%xmm8,4), %%xmm9;"
"xorl %%r14d, %%r14d")
"vpmovsxdq %%xmm6, %%ymm9;"
"vblendvpd %%ymm9, %%ymm8, %%ymm7, %%ymm8;"
"vmovdqa 96(%0), %%ymm9;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vgatherqps %%xmm6, 3(%%r14,%%ymm8,4), %%xmm9;"
"xorl %%r14d, %%r14d")
"vpmovsxdq %%xmm6, %%xmm9;"
"vblendvpd %%xmm9, %%xmm8, %%xmm7, %%xmm8;"
"vmovdqa 96(%0), %%ymm9;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vmovq %%r14, %%xmm7;"
"vpsllq $2, %%xmm8, %%xmm8;"
"vpbroadcastq %%xmm7, %%xmm7;"
"vpmovsxdq %%xmm6, %%ymm9;"
"vblendvpd %%ymm9, %%ymm8, %%ymm7, %%ymm8;"
"vmovdqa 96(%0), %%ymm9;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vmovq %%r14, %%xmm7;"
"vpsllq $2, %%ymm8, %%ymm8;"
"vpbroadcastq %%xmm7, %%ymm7;"
"vshufps $13, %%xmm6, %%xmm6, %%xmm9;"
"vblendvps %%xmm9, %%xmm8, %%xmm7, %%xmm8;"
"vmovdqa 96(%0), %%ymm9;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vgatherdpd %%xmm6, 3(%%r14,%%xmm8,8), %%xmm9;"
"xorl %%r14d, %%r14d")
"vshufps $221, %%ymm9, %%ymm6, %%ymm9;"
"vblendvps %%ymm9, %%ymm8, %%ymm7, %%ymm8;"
"vmovdqa 96(%0), %%ymm9;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vgatherdpd %%ymm6, 3(%%r14,%%xmm8,8), %%ymm9;"
"xorl %%r14d, %%r14d")
"vpsllq $58, %%xmm7, %%xmm8;"
"vpsrlq $58, %%xmm8, %%xmm8;"
"vblendvpd %%xmm6, %%xmm8, %%xmm7, %%xmm8;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vgatherqpd %%xmm6, 3(%%r14,%%xmm8,8), %%xmm9;"
"xorl %%r14d, %%r14d")
"vpsllq $58, %%ymm7, %%ymm8;"
"vpsrlq $58, %%ymm8, %%ymm8;"
"vblendvpd %%ymm6, %%ymm8, %%ymm7, %%ymm8;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vgatherqpd %%ymm6, 3(%%r14,%%ymm8,8), %%ymm9;"
"xorl %%r14d, %%r14d")
"vpsllq $58, %%xmm7, %%xmm8;"
"vpsrlq $58, %%xmm8, %%xmm8;"
"vblendvpd %%xmm6, %%xmm8, %%xmm7, %%xmm8;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vmovq %%r14, %%xmm7;"
"vpsllq $2, %%xmm8, %%xmm8;"
"vpbroadcastq %%xmm7, %%xmm7;"
"vpsllq $58, %%ymm7, %%ymm8;"
"vpsrlq $58, %%ymm8, %%ymm8;"
"vblendvpd %%ymm6, %%ymm8, %%ymm7, %%ymm8;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vmovq %%r14, %%xmm7;"
"vpsllq $2, %%ymm8, %%ymm8;"
"vpbroadcastq %%xmm7, %%ymm7;"
"vpslld $25, %%xmm7, %%xmm8;"
"vpsrld $25, %%xmm8, %%xmm8;"
"vblendvps %%xmm6, %%xmm8, %%xmm7, %%xmm8;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vpgatherdd %%xmm6, 3(%%r14,%%xmm8,4), %%xmm9;"
"xorl %%r14d, %%r14d")
"vpslld $25, %%ymm7, %%ymm8;"
"vpsrld $25, %%ymm8, %%ymm8;"
"vblendvps %%ymm6, %%ymm8, %%ymm7, %%ymm8;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vpgatherdd %%ymm6, 3(%%r14,%%ymm8,4), %%ymm9;"
"xorl %%r14d, %%r14d")
"vpmovsxdq %%xmm6, %%xmm9;"
"vblendvpd %%xmm9, %%xmm8, %%xmm7, %%xmm8;"
"vmovdqa 96(%0), %%ymm9;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vpgatherqd %%xmm6, 3(%%r14,%%xmm8,4), %%xmm9;"
"xorl %%r14d, %%r14d")
"vpmovsxdq %%xmm6, %%ymm9;"
"vblendvpd %%ymm9, %%ymm8, %%ymm7, %%ymm8;"
"vmovdqa 96(%0), %%ymm9;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vpgatherqd %%xmm6, 3(%%r14,%%ymm8,4), %%xmm9;"
"xorl %%r14d, %%r14d")
"vpmovsxdq %%xmm6, %%xmm9;"
"vblendvpd %%xmm9, %%xmm8, %%xmm7, %%xmm8;"
"vmovdqa 96(%0), %%ymm9;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vmovq %%r14, %%xmm7;"
"vpsllq $2, %%xmm8, %%xmm8;"
"vpbroadcastq %%xmm7, %%xmm7;"
"vpmovsxdq %%xmm6, %%ymm9;"
"vblendvpd %%ymm9, %%ymm8, %%ymm7, %%ymm8;"
"vmovdqa 96(%0), %%ymm9;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vmovq %%r14, %%xmm7;"
"vpsllq $2, %%ymm8, %%ymm8;"
"vpbroadcastq %%xmm7, %%ymm7;"
"vshufps $13, %%xmm6, %%xmm6, %%xmm9;"
"vblendvps %%xmm9, %%xmm8, %%xmm7, %%xmm8;"
"vmovdqa 96(%0), %%ymm9;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vpgatherdq %%xmm6, 3(%%r14,%%xmm8,8), %%xmm9;"
"xorl %%r14d, %%r14d")
"vshufps $221, %%ymm9, %%ymm6, %%ymm9;"
"vblendvps %%ymm9, %%ymm8, %%ymm7, %%ymm8;"
"vmovdqa 96(%0), %%ymm9;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vpgatherdq %%ymm6, 3(%%r14,%%xmm8,8), %%ymm9;"
"xorl %%r14d, %%r14d")
"vpsllq $58, %%xmm7, %%xmm8;"
"vpsrlq $58, %%xmm8, %%xmm8;"
"vblendvpd %%xmm6, %%xmm8, %%xmm7, %%xmm8;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vpgatherqq %%xmm6, 3(%%r14,%%xmm8,8), %%xmm9;"
"xorl %%r14d, %%r14d")
"vpsllq $58, %%ymm7, %%ymm8;"
"vpsrlq $58, %%ymm8, %%ymm8;"
"vblendvpd %%ymm6, %%ymm8, %%ymm7, %%ymm8;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vpgatherqq %%ymm6, 3(%%r14,%%ymm8,8), %%ymm9;"
"xorl %%r14d, %%r14d")
"vpsllq $58, %%xmm7, %%xmm8;"
"vpsrlq $58, %%xmm8, %%xmm8;"
"vblendvpd %%xmm6, %%xmm8, %%xmm7, %%xmm8;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vmovq %%r14, %%xmm7;"
"vpsllq $2, %%xmm8, %%xmm8;"
"vpbroadcastq %%xmm7, %%xmm7;"
"vpsllq $58, %%ymm7, %%ymm8;"
"vpsrlq $58, %%ymm8, %%ymm8;"
"vblendvpd %%ymm6, %%ymm8, %%ymm7, %%ymm8;"
- "leaq randArray(%%rip), %%r14;"
+ "leaq _randArray(%%rip), %%r14;"
"vmovq %%r14, %%xmm7;"
"vpsllq $2, %%ymm8, %%ymm8;"
"vpbroadcastq %%xmm7, %%ymm7;"
DO_D( VPMASKMOVD_256_StoreForm );
DO_D( VPMASKMOVQ_128_StoreForm );
DO_D( VPMASKMOVQ_256_StoreForm );
+#if defined(VGO_darwin)
{ int i; for (i = 0; i < sizeof(randArray); i++) randArray[i] = randUChar(); }
+#else
+ { int i; for (i = 0; i < sizeof(_randArray); i++) _randArray[i] = randUChar(); }
+#endif
DO_D( VGATHERDPS_128 );
DO_D( VGATHERDPS_256 );
DO_D( VGATHERQPS_128_1 );