diff --git a/llvm/tools/hpvm/test/unitTests/PipelineIntrinsics.c b/llvm/tools/hpvm/test/unitTests/PipelineIntrinsics.c
new file mode 100644
index 0000000000000000000000000000000000000000..0c1932129266eb55564b199d2451b73c0ce21a73
--- /dev/null
+++ b/llvm/tools/hpvm/test/unitTests/PipelineIntrinsics.c
@@ -0,0 +1,35 @@
+#include <stdlib.h>
+#include "visc.h"
+
+struct Root {
+  int *input;
+  int *output;
+};
+
+void PipeRoot(int *In, int *Out) {
+  __visc__hint (CPU_TARGET);
+  __visc__attributes(1, In, 1, Out);
+  __visc__return(1, Out);
+}
+
+int  main(void) {
+    int In, Out;
+
+   // struct Root RootArgs;
+   // RootArgs.input = (int *)&In;
+   // RootArgs.output = (int *)&Out;
+
+     struct Root* RootArgs = (struct Root *) malloc(sizeof(struct Root));
+     RootArgs->input = (int *)&In;
+     RootArgs->output = (int *)&Out;
+
+    __visc__init();
+
+    void* PipeDFG = __visc__launch(0, PipeRoot, (void *) RootArgs);
+    __visc__wait(PipeDFG);
+
+    __visc__cleanup();
+
+    return 0;
+}
+