diff --git a/README.vortex b/README.vortex
index b6bb5f1dc77a70ea880ec91daeb742470d39180a..d50fa2bdc8e7861a34f1de9e43132f794b4454dc 100644
--- a/README.vortex
+++ b/README.vortex
@@ -8,4 +8,7 @@
 - cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$POCL_PATH -DWITH_LLVM_CONFIG=$LLVM_PREFIX/bin/llvm-config -DVORTEX_PREFIX=$VORTEX_PREFIX -DENABLE_VORTEX=ON -DKERNEL_CACHE_DEFAULT=OFF -DENABLE_HOST_CPU_DEVICES=OFF -DENABLE_TESTS=OFF -DPOCL_DEBUG_MESSAGES=ON -DENABLE_ICD=OFF ..
 - make -j`nproc`
 - make install
-- cp -r ../include $POCL_RT_PATH
\ No newline at end of file
+- cp -r ../include $POCL_RT_PATH
+
+cmake -B build ./ -G "Unix Makefiles" -DCLANG_HAS_64B_MATH=1 -DCLANG_HAS_128B_MATH=1 -DCLANG_NEEDS_RTLIB=0 -DCMAKE_BUILD_TYPE=Release -DENABLE_VORTEX=ON -DENABLE_POCLCC=ON -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu -DVORTEX_PREFIX=/home/noic/dev/vortex-traces -DKERNEL_CACHE_DEFAULT=OFF -DENABLE_HOST_CPU_DEVICES=OFF -DENABLE_TESTS=OFF -DSTATIC_LLVM=ON -DENABLE_LOADABLE_DRIVERS=OFF -DWITH_LLVM_CONFIG=/usr/local/bin/llvm-config -DHOST_CPU_SUPPORTS_DOUBLE=ON -DPOCL_DEBUG_MESSAGES=ON -DENABLE_ICD=OFF
+cmake --build build -j `nproc` --target install
diff --git a/cmake/LLVM.cmake b/cmake/LLVM.cmake
index 428ec61822a928667dd3e57cc19f455d4f8c4a90..f9169e52e5204386ce31a214b6551f6f92b30edd 100644
--- a/cmake/LLVM.cmake
+++ b/cmake/LLVM.cmake
@@ -525,13 +525,13 @@ if(NOT DEFINED CLANG_NEEDS_RTLIB)
     # on 64bit systems, we need 128bit integers for Errol
     set(INC "extern __uint128_t __udivmodti4(__uint128_t a, __uint128_t b, __uint128_t* rem);")
     set(SRC "__uint128_t low, mid, tmp1, pow19 = (__uint128_t)1000000000; mid = __udivmodti4(low, pow19, &tmp1); return 0;")
-    custom_try_link_clang("${INC}" "${SRC}" RES)
+    custom_try_link_clang("${INC}" "${SRC}" RES "-march=rv32imaf" "-fforce-enable-int128")
 
     if(NOT RES)
       message(STATUS "udivmodti4 compiles without extra flags")
       set(RT128 ON)
     else()
-      custom_try_link_clang("${INC}" "${SRC}" RES "--rtlib=compiler-rt")
+      custom_try_link_clang("${INC}" "${SRC}" RES "--rtlib=compiler-rt" "-march=rv32imaf" "-fforce-enable-int128")
       if(NOT RES)
         message(STATUS "udivmodti4 compiles WITH --rtlib=compiler-rt")
         set(NEEDS_RTLIB_FLAG ON)
diff --git a/include/CL/CMakeLists.txt b/include/CL/CMakeLists.txt
index 69b5829288ae5d2858919b6aa2add9f4e23e8a21..da2b71c098a7314486cc11d0f061c0c127fc95da 100644
--- a/include/CL/CMakeLists.txt
+++ b/include/CL/CMakeLists.txt
@@ -33,6 +33,8 @@ if(INSTALL_OPENCL_HEADERS)
                 cl_dx9_media_sharing_intel.h
                 cl_ext.h
                 cl_egl.h
+                cl_exp_defined_builtin_kernels.h
+                cl_exp_tensor.h
                 cl_ext_intel.h
                 cl_ext_pocl.h
                 cl_gl.h
diff --git a/lib/CL/devices/CMakeLists.txt b/lib/CL/devices/CMakeLists.txt
index fed894c44bce55717982c8774261e74379c2b9e1..c3908a9dcc682230fab87183ab9ab0d82320d687 100644
--- a/lib/CL/devices/CMakeLists.txt
+++ b/lib/CL/devices/CMakeLists.txt
@@ -162,7 +162,7 @@ if(ENABLE_VORTEX)
     "$<TARGET_OBJECTS:pocl-devices-vortex>")
 
   if(NOT ENABLE_LOADABLE_DRIVERS)
-      list(APPEND POCL_DEVICES_LINK_LIST vortex)
+      list(APPEND POCL_DEVICES_LINK_LIST ${VORTEX_PREFIX}/runtime/libvortex.so)
   endif()
 endif()
 
diff --git a/lib/CL/devices/vortex/CMakeLists.txt b/lib/CL/devices/vortex/CMakeLists.txt
index dc53db46e706d0f7ea91b71c9be1fa1539fa90c6..4326f9f758324ac944b0a2a50b263d2c211e9585 100644
--- a/lib/CL/devices/vortex/CMakeLists.txt
+++ b/lib/CL/devices/vortex/CMakeLists.txt
@@ -33,7 +33,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
 add_pocl_device_library("pocl-devices-vortex" pocl-vortex.c pocl-vortex.h vortex_utils.cc vortex_utils.h)
 
 if(ENABLE_LOADABLE_DRIVERS)
-  target_link_libraries(pocl-devices-vortex PRIVATE ${VORTEX_PREFIX}/runtime/lib/libvortex.so ${PTHREAD_LIBRARY})
+  target_link_libraries(pocl-devices-vortex PRIVATE ${VORTEX_PREFIX}/runtime/libvortex.so ${PTHREAD_LIBRARY})
 endif()
 
 install(FILES "kernel_main.c" "kernel_args.h"
diff --git a/lib/CL/devices/vortex/pocl-vortex.c b/lib/CL/devices/vortex/pocl-vortex.c
index bdd48f0e21c88c07d80e948b95ff4199885b9900..7608747865d6ebe188d16a3fedb7cbca8edae548 100644
--- a/lib/CL/devices/vortex/pocl-vortex.c
+++ b/lib/CL/devices/vortex/pocl-vortex.c
@@ -1,5 +1,5 @@
 #include "pocl-vortex.h"
-#include "builtin_kernels.hh"
+#include "pocl_builtin_kernels.h"
 #include "common.h"
 #include "config.h"
 #include "config2.h"
diff --git a/lib/kernel/vortex/CMakeLists.txt b/lib/kernel/vortex/CMakeLists.txt
index 71aaa4b2d1bdf96acf42438e9ded7948f3d83966..af97049d8cd3f5afaf1140cdc90816f6d36b5d20 100644
--- a/lib/kernel/vortex/CMakeLists.txt
+++ b/lib/kernel/vortex/CMakeLists.txt
@@ -25,10 +25,10 @@
 
 include("bitcode_rules")
 
-set(LLVM_TARGET_64 riscv64)
+set(LLVM_TARGET_64 riscv64-none-unknown-elf)
 set(TARGET_MARCH_64 rv64imafd)
 
-set(LLVM_TARGET_32 riscv32)
+set(LLVM_TARGET_32 riscv32-none-unknown-elf)
 set(TARGET_MARCH_32 rv32imaf)
 
 set(KERNEL_SOURCES ${SOURCES_GENERIC})
@@ -56,13 +56,13 @@ foreach(EXT ${VORTEX_DEVICE_EXTENSIONS})
 endforeach()
 separate_arguments(DEVICE_CL_FLAGS)
 
-set(CLANG_FLAGS "-ffreestanding" "-target" "${LLVM_TARGET_32}" "-march=${TARGET_MARCH_32}" "-emit-llvm" "-DPOCL_DEVICE_ADDRESS_BITS=32" "-D_CL_DISABLE_HALF" "-I${VORTEX_PREFIX}/kernel/include")
+set(CLANG_FLAGS "-Dcl_khr_fp64" "-Dcl_khr_int64" "-cl-ext=all,-cl_khr_fp64" "-ffreestanding" "-target" "${LLVM_TARGET_32}" "-march=${TARGET_MARCH_32}" "-emit-llvm" "-DPOCL_DEVICE_ADDRESS_BITS=32" "-D_CL_DISABLE_HALF" "-I${VORTEX_PREFIX}/kernel/include" "-I${VORTEX_PREFIX}/hw/")
 set(DEVICE_CL_FLAGS "-D__OPENCL_VERSION__=${VORTEX_DEVICE_CL_VERSION} -DPOCL_DEVICE_ADDRESS_BITS=32")
-make_kernel_bc(KERNEL_BC_32 "${LLVM_TARGET_32}" "VX32-BCs" 0 0 0 ${KERNEL_SOURCES})
+make_kernel_bc(KERNEL_BC_32 "riscv32" "VX32-BCs" 0 0 0 ${KERNEL_SOURCES})
 
-set(CLANG_FLAGS "-ffreestanding" "-target" "${LLVM_TARGET_64}" "-march=${TARGET_MARCH_64}" "-emit-llvm" "-DPOCL_DEVICE_ADDRESS_BITS=64" "-D_CL_DISABLE_HALF" "-I${VORTEX_PREFIX}/kernel/include")
+set(CLANG_FLAGS "-Dcl_khr_fp64" "-Dcl_khr_int64" "-cl-ext=all,-cl_khr_fp64" "-ffreestanding" "-target" "${LLVM_TARGET_64}" "-march=${TARGET_MARCH_64}" "-emit-llvm" "-DPOCL_DEVICE_ADDRESS_BITS=64" "-D_CL_DISABLE_HALF" "-I${VORTEX_PREFIX}/kernel/include" "-I${VORTEX_PREFIX}/hw/")
 set(DEVICE_CL_FLAGS "-D__OPENCL_VERSION__=${VORTEX_DEVICE_CL_VERSION} -DPOCL_DEVICE_ADDRESS_BITS=64")
-make_kernel_bc(KERNEL_BC_64 "${LLVM_TARGET_64}" "VX64-BCs" 0 0 0 ${KERNEL_SOURCES})
+make_kernel_bc(KERNEL_BC_64 "riscv64" "VX64-BCs" 0 0 0 ${KERNEL_SOURCES})
 
 # just debug
 message(STATUS "${LLVM_TARGET_32} Kernel BC: ${KERNEL_BC_32}")