summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/torture/pr18582-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.dg/torture/pr18582-1.c')
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr18582-1.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/torture/pr18582-1.c b/gcc/testsuite/gcc.dg/torture/pr18582-1.c
new file mode 100644
index 000000000..619593905
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr18582-1.c
@@ -0,0 +1,24 @@
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-msse3" } */
+typedef char v16qi __attribute__((vector_size (16)));
+typedef float v4sf __attribute__((vector_size (16)));
+typedef double v2df __attribute__((vector_size (16)));
+
+extern char ca[];
+extern float fa[];
+extern double da[];
+
+extern v16qi cva[];
+extern v4sf fva[];
+extern v2df dva[];
+
+void
+foo (void)
+{
+ cva[0] = __builtin_ia32_loaddqu (ca);
+ cva[0] = __builtin_ia32_lddqu (ca);
+
+ fva[0] = __builtin_ia32_loadups (fa);
+
+ dva[0] = __builtin_ia32_loadupd (da);
+}