summaryrefslogtreecommitdiff
path: root/testsuite/tests/codeGen/should_run/simd000.hs
blob: 47d69497c07a20fa6cdef0fb754b99a5622fd3cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{-# OPTIONS_GHC -mavx #-}
{-# OPTIONS_GHC -msse4 #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE UnboxedTuples #-}
-- !!! test broadcasting, packing and unpacking for vector types

import GHC.Exts

main :: IO ()
main = do
    -- FloatX4#
    case unpackFloatX4# (broadcastFloatX4# 1.5#) of
        (# a, b, c, d #) -> print (F# a, F# b, F# c, F# d)
    case unpackFloatX4# (packFloatX4# (# 4.5#,7.8#, 2.3#, 6.5# #)) of
        (# a, b, c, d #) -> print (F# a, F# b, F# c, F# d)

    -- DoubleX2#
    case unpackDoubleX2# (broadcastDoubleX2# 6.5##) of
        (# a, b #) -> print (D# a, D# b)
    case unpackDoubleX2# (packDoubleX2# (# 8.9##,7.2## #)) of
        (# a, b #) -> print (D# a, D# b)