    {-# LANGUAGE TemplateHaskell #-}

    -- | Code snippets used by the OpenCL and CUDA backends.
    module Futhark.CodeGen.RTS.OpenCL
      ( transposeCL,
        preludeCL,
        copyCL,
      )
    where

    import Data.FileEmbed
    import Data.Text qualified as T

    -- | @rts/opencl/transpose.cl@
    transposeCL :: T.Text
    transposeCL :: Text
    transposeCL = $(embedStringFile "rts/opencl/transpose.cl")
    {-# NOINLINE transposeCL #-}

    -- | @rts/opencl/prelude.cl@
    preludeCL :: T.Text
    preludeCL :: Text
    preludeCL = $(embedStringFile "rts/opencl/prelude.cl")
    {-# NOINLINE preludeCL #-}

    -- | @rts/opencl/copy.cl@
    copyCL :: T.Text
    copyCL :: Text
    copyCL = $(embedStringFile "rts/opencl/copy.cl")
    {-# NOINLINE copyCL #-}