aboutsummaryrefslogtreecommitdiffstats
path: root/test/FrontendC/block-copy.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/FrontendC/block-copy.c')
-rw-r--r--test/FrontendC/block-copy.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/FrontendC/block-copy.c b/test/FrontendC/block-copy.c
new file mode 100644
index 0000000..a53732e
--- /dev/null
+++ b/test/FrontendC/block-copy.c
@@ -0,0 +1,20 @@
+/* RUN: %llvmgcc %s -S -o - -emit-llvm -O3 | grep {call.*memcpy}
+
+ This should compile into a memcpy from a global, not 128 stores. */
+
+
+
+void foo();
+
+float bar() {
+ float lookupTable[] = {-1,-1,-1,0, -1,-1,0,-1, -1,-1,0,1, -1,-1,1,0,
+ -1,0,-1,-1, -1,0,-1,1, -1,0,1,-1, -1,0,1,1,
+ -1,1,-1,0, -1,1,0,-1, -1,1,0,1, -1,1,1,0,
+ 0,-1,-1,-1, 0,-1,-1,1, 0,-1,1,-1, 0,-1,1,1,
+ 1,-1,-1,0, 1,-1,0,-1, 1,-1,0,1, 1,-1,1,0,
+ 1,0,-1,-1, 1,0,-1,1, 1,0,1,-1, 1,0,1,1,
+ 1,1,-1,0, 1,1,0,-1, 1,1,0,1, 1,1,1,0,
+ 0,1,-1,-1, 0,1,-1,1, 0,1,1,-1, 0,1,1,1};
+ foo(lookupTable);
+}
+