aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2018-11-10 21:58:26 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2018-11-10 21:58:26 +0200
commit75648a2c9ecb85d227beafef68fd2330b73e5ffb (patch)
treeb74086dc309d3947fd908037e1750d8daa025839
parent0859442480d4e0f607100a3bd62224156474a6b2 (diff)
downloadmeson-simdix.zip
meson-simdix.tar.gz
meson-simdix.tar.bz2
Fix alignment with MSVC.simdix
-rw-r--r--test cases/common/152 simd/simd_sse2.c3
-rw-r--r--test cases/common/152 simd/simd_sse3.c3
-rw-r--r--test cases/common/152 simd/simd_sse41.c3
-rw-r--r--test cases/common/152 simd/simd_sse42.c3
-rw-r--r--test cases/common/152 simd/simd_ssse3.c3
-rw-r--r--test cases/common/152 simd/simdchecker.c3
-rw-r--r--test cases/common/152 simd/simdfuncs.h8
7 files changed, 14 insertions, 12 deletions
diff --git a/test cases/common/152 simd/simd_sse2.c b/test cases/common/152 simd/simd_sse2.c
index 5d412fd..271022e 100644
--- a/test cases/common/152 simd/simd_sse2.c
+++ b/test cases/common/152 simd/simd_sse2.c
@@ -1,7 +1,6 @@
#include<simdconfig.h>
#include<simdfuncs.h>
#include<emmintrin.h>
-#include<stdalign.h>
#ifdef _MSC_VER
int sse2_available() {
@@ -22,7 +21,7 @@ int sse2_available() {
#endif
void increment_sse2(float arr[4]) {
- alignas(16) double darr[4];
+ ALIGN_16 double darr[4];
__m128d val1 = _mm_set_pd(arr[0], arr[1]);
__m128d val2 = _mm_set_pd(arr[2], arr[3]);
__m128d one = _mm_set_pd(1.0, 1.0);
diff --git a/test cases/common/152 simd/simd_sse3.c b/test cases/common/152 simd/simd_sse3.c
index 4aa47fd..89c2f8b 100644
--- a/test cases/common/152 simd/simd_sse3.c
+++ b/test cases/common/152 simd/simd_sse3.c
@@ -1,6 +1,5 @@
#include<simdconfig.h>
#include<simdfuncs.h>
-#include<stdalign.h>
#ifdef _MSC_VER
#include<intrin.h>
@@ -23,7 +22,7 @@ int sse3_available() {
#endif
void increment_sse3(float arr[4]) {
- alignas(16) double darr[4];
+ ALIGN_16 double darr[4];
__m128d val1 = _mm_set_pd(arr[0], arr[1]);
__m128d val2 = _mm_set_pd(arr[2], arr[3]);
__m128d one = _mm_set_pd(1.0, 1.0);
diff --git a/test cases/common/152 simd/simd_sse41.c b/test cases/common/152 simd/simd_sse41.c
index 466b30c..859fb43 100644
--- a/test cases/common/152 simd/simd_sse41.c
+++ b/test cases/common/152 simd/simd_sse41.c
@@ -1,7 +1,6 @@
#include<simdconfig.h>
#include<simdfuncs.h>
-#include<stdalign.h>
#include<stdint.h>
#ifdef _MSC_VER
@@ -25,7 +24,7 @@ int sse41_available() {
#endif
void increment_sse41(float arr[4]) {
- alignas(16) double darr[4];
+ ALIGN_16 double darr[4];
__m128d val1 = _mm_set_pd(arr[0], arr[1]);
__m128d val2 = _mm_set_pd(arr[2], arr[3]);
__m128d one = _mm_set_pd(1.0, 1.0);
diff --git a/test cases/common/152 simd/simd_sse42.c b/test cases/common/152 simd/simd_sse42.c
index 26d5ba8..edd6e5b 100644
--- a/test cases/common/152 simd/simd_sse42.c
+++ b/test cases/common/152 simd/simd_sse42.c
@@ -1,7 +1,6 @@
#include<simdconfig.h>
#include<simdfuncs.h>
#include<stdint.h>
-#include<stdalign.h>
#ifdef _MSC_VER
#include<intrin.h>
@@ -28,7 +27,7 @@ int sse42_available() {
#endif
void increment_sse42(float arr[4]) {
- alignas(16) double darr[4];
+ ALIGN_16 double darr[4];
__m128d val1 = _mm_set_pd(arr[0], arr[1]);
__m128d val2 = _mm_set_pd(arr[2], arr[3]);
__m128d one = _mm_set_pd(1.0, 1.0);
diff --git a/test cases/common/152 simd/simd_ssse3.c b/test cases/common/152 simd/simd_ssse3.c
index d099165..0156f77 100644
--- a/test cases/common/152 simd/simd_ssse3.c
+++ b/test cases/common/152 simd/simd_ssse3.c
@@ -1,6 +1,5 @@
#include<simdconfig.h>
#include<simdfuncs.h>
-#include<stdalign.h>
#include<emmintrin.h>
#include<tmmintrin.h>
@@ -31,7 +30,7 @@ int ssse3_available() {
#endif
void increment_ssse3(float arr[4]) {
- alignas(16) double darr[4];
+ ALIGN_16 double darr[4];
__m128d val1 = _mm_set_pd(arr[0], arr[1]);
__m128d val2 = _mm_set_pd(arr[2], arr[3]);
__m128d one = _mm_set_pd(1.0, 1.0);
diff --git a/test cases/common/152 simd/simdchecker.c b/test cases/common/152 simd/simdchecker.c
index bc7c10a..cd6fe4f 100644
--- a/test cases/common/152 simd/simdchecker.c
+++ b/test cases/common/152 simd/simdchecker.c
@@ -1,5 +1,4 @@
#include<simdfuncs.h>
-#include<stdalign.h>
#include<stdio.h>
#include<string.h>
@@ -26,7 +25,7 @@ int check_simd_implementation(float *four,
int main(int argc, char **argv) {
static const float four_initial[4] = {2.0, 3.0, 4.0, 5.0};
- alignas(16) float four[4];
+ ALIGN_16 float four[4];
const float expected[4] = {3.0, 4.0, 5.0, 6.0};
int r=0;
const int blocksize = 4;
diff --git a/test cases/common/152 simd/simdfuncs.h b/test cases/common/152 simd/simdfuncs.h
index dfb0560..c5e1658 100644
--- a/test cases/common/152 simd/simdfuncs.h
+++ b/test cases/common/152 simd/simdfuncs.h
@@ -2,6 +2,14 @@
#include<simdconfig.h>
+#ifdef _MSC_VER
+#define ALIGN_16 __declspec(align(16))
+#else
+#include<stdalign.h>
+#define ALIGN_16 alignas(16)
+#endif
+
+
/* Yes, I do know that arr[4] decays into a pointer
* as a function argument. Don't do this in real code
* but for this test it is ok.