summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/examplefiles/futhark/example.fut16
-rw-r--r--tests/examplefiles/futhark/example.fut.output239
2 files changed, 255 insertions, 0 deletions
diff --git a/tests/examplefiles/futhark/example.fut b/tests/examplefiles/futhark/example.fut
new file mode 100644
index 00000000..d2c7bfa8
--- /dev/null
+++ b/tests/examplefiles/futhark/example.fut
@@ -0,0 +1,16 @@
+module matmul (F: numeric) = {
+ type t = F.t
+ open F
+
+ local let dotprod [n] (a: [n]t) (b: [n]t): t =
+ map2 (*) a b |> reduce (+) (i32 0)
+
+
+ let matmul [n1][n2][m] (xss: [n1][m]t) (yss: [m][n2]t): [n1][n2]t =
+ map (\xs -> map (\ys -> dotprod xs ys) <| transpose yss) xss
+}
+
+module matmul32 = matmul f32
+
+let main [n][m] (xss: [n][m]f32) (yss: [m][n]f32): *[n][n]f32 =
+ matmul32.matmul xss yss
diff --git a/tests/examplefiles/futhark/example.fut.output b/tests/examplefiles/futhark/example.fut.output
new file mode 100644
index 00000000..d1fe0afb
--- /dev/null
+++ b/tests/examplefiles/futhark/example.fut.output
@@ -0,0 +1,239 @@
+'module' Keyword.Reserved
+' ' Text.Whitespace
+'matmul' Name
+' ' Text.Whitespace
+'(' Punctuation
+'F' Name
+':' Punctuation
+' ' Text.Whitespace
+'numeric' Name
+')' Punctuation
+' ' Text.Whitespace
+'=' Operator
+' ' Text.Whitespace
+'{' Punctuation
+'\n ' Text.Whitespace
+'type' Keyword.Reserved
+' ' Text.Whitespace
+'t' Name
+' ' Text.Whitespace
+'=' Operator
+' ' Text.Whitespace
+'F.t' Name
+'\n ' Text.Whitespace
+'open' Keyword.Reserved
+' ' Text.Whitespace
+'F' Name
+'\n\n ' Text.Whitespace
+'local' Keyword.Reserved
+' ' Text.Whitespace
+'let' Keyword.Reserved
+' ' Text.Whitespace
+'dotprod' Name
+' ' Text.Whitespace
+'[' Punctuation
+'n' Name
+']' Punctuation
+' ' Text.Whitespace
+'(' Punctuation
+'a' Name
+':' Punctuation
+' ' Text.Whitespace
+'[' Punctuation
+'n' Name
+']' Punctuation
+'t' Name
+')' Punctuation
+' ' Text.Whitespace
+'(' Punctuation
+'b' Name
+':' Punctuation
+' ' Text.Whitespace
+'[' Punctuation
+'n' Name
+']' Punctuation
+'t' Name
+')' Punctuation
+':' Punctuation
+' ' Text.Whitespace
+'t' Name
+' ' Text.Whitespace
+'=' Operator
+'\n ' Text.Whitespace
+'map2' Name
+' ' Text.Whitespace
+'(' Punctuation
+'*' Operator
+')' Punctuation
+' ' Text.Whitespace
+'a' Name
+' ' Text.Whitespace
+'b' Name
+' ' Text.Whitespace
+'|>' Operator
+' ' Text.Whitespace
+'reduce' Name
+' ' Text.Whitespace
+'(' Punctuation
+'+' Operator
+')' Punctuation
+' ' Text.Whitespace
+'(' Punctuation
+'i32' Keyword.Type
+' ' Text.Whitespace
+'0' Literal.Number.Integer
+')' Punctuation
+'\n\n\n ' Text.Whitespace
+'let' Keyword.Reserved
+' ' Text.Whitespace
+'matmul' Name
+' ' Text.Whitespace
+'[' Punctuation
+'n1' Name
+']' Punctuation
+'[' Punctuation
+'n2' Name
+']' Punctuation
+'[' Punctuation
+'m' Name
+']' Punctuation
+' ' Text.Whitespace
+'(' Punctuation
+'xss' Name
+':' Punctuation
+' ' Text.Whitespace
+'[' Punctuation
+'n1' Name
+']' Punctuation
+'[' Punctuation
+'m' Name
+']' Punctuation
+'t' Name
+')' Punctuation
+' ' Text.Whitespace
+'(' Punctuation
+'yss' Name
+':' Punctuation
+' ' Text.Whitespace
+'[' Punctuation
+'m' Name
+']' Punctuation
+'[' Punctuation
+'n2' Name
+']' Punctuation
+'t' Name
+')' Punctuation
+':' Punctuation
+' ' Text.Whitespace
+'[' Punctuation
+'n1' Name
+']' Punctuation
+'[' Punctuation
+'n2' Name
+']' Punctuation
+'t' Name
+' ' Text.Whitespace
+'=' Operator
+'\n ' Text.Whitespace
+'map' Name
+' ' Text.Whitespace
+'(' Punctuation
+'\\' Operator
+'xs' Name
+' ' Text.Whitespace
+'->' Operator
+' ' Text.Whitespace
+'map' Name
+' ' Text.Whitespace
+'(' Punctuation
+'\\' Operator
+'ys' Name
+' ' Text.Whitespace
+'->' Operator
+' ' Text.Whitespace
+'dotprod' Name
+' ' Text.Whitespace
+'xs' Name
+' ' Text.Whitespace
+'ys' Name
+')' Punctuation
+' ' Text.Whitespace
+'<|' Operator
+' ' Text.Whitespace
+'transpose' Name
+' ' Text.Whitespace
+'yss' Name
+')' Punctuation
+' ' Text.Whitespace
+'xss' Name
+'\n' Text.Whitespace
+
+'}' Punctuation
+'\n\n' Text.Whitespace
+
+'module' Keyword.Reserved
+' ' Text.Whitespace
+'matmul32' Name
+' ' Text.Whitespace
+'=' Operator
+' ' Text.Whitespace
+'matmul' Name
+' ' Text.Whitespace
+'f32' Keyword.Type
+'\n\n' Text.Whitespace
+
+'let' Keyword.Reserved
+' ' Text.Whitespace
+'main' Name
+' ' Text.Whitespace
+'[' Punctuation
+'n' Name
+']' Punctuation
+'[' Punctuation
+'m' Name
+']' Punctuation
+' ' Text.Whitespace
+'(' Punctuation
+'xss' Name
+':' Punctuation
+' ' Text.Whitespace
+'[' Punctuation
+'n' Name
+']' Punctuation
+'[' Punctuation
+'m' Name
+']' Punctuation
+'f32' Keyword.Type
+')' Punctuation
+' ' Text.Whitespace
+'(' Punctuation
+'yss' Name
+':' Punctuation
+' ' Text.Whitespace
+'[' Punctuation
+'m' Name
+']' Punctuation
+'[' Punctuation
+'n' Name
+']' Punctuation
+'f32' Keyword.Type
+')' Punctuation
+':' Punctuation
+' ' Text.Whitespace
+'*' Operator
+'[' Punctuation
+'n' Name
+']' Punctuation
+'[' Punctuation
+'n' Name
+']' Punctuation
+'f32' Keyword.Type
+' ' Text.Whitespace
+'=' Operator
+'\n ' Text.Whitespace
+'matmul32.matmul' Name
+' ' Text.Whitespace
+'xss' Name
+' ' Text.Whitespace
+'yss' Name
+'\n' Text.Whitespace