-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathtest-builder.test
More file actions
49 lines (48 loc) · 3.32 KB
/
test-builder.test
File metadata and controls
49 lines (48 loc) · 3.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --tool llvm-dialects-example --include-generated-funcs
; NOTE: stdin isn't used by the example program, but the redirect makes the UTC tool happy.
; RUN: llvm-dialects-example - | FileCheck --check-prefixes=CHECK %s
; RUN: llvm-dialects-example -typed-pointers | FileCheck --check-prefixes=TYPED %s
; CHECK-LABEL: @example(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = alloca target("xd.vector", i32, 1, 4), align 16
; CHECK-NEXT: [[TMP1:%.*]] = call i32 @xd.read.i32()
; CHECK-NEXT: [[TMP2:%.*]] = call i64 (...) @xd.sizeof(double poison)
; CHECK-NEXT: [[TMP3:%.*]] = call i32 (...) @xd.itrunc.i32(i64 [[TMP2]])
; CHECK-NEXT: [[TMP4:%.*]] = call i32 @xd.add32(i32 [[TMP1]], i32 [[TMP3]], i32 7)
; CHECK-NEXT: [[TMP5:%.*]] = call i32 (...) @xd.combine.i32(i32 [[TMP4]], i32 [[TMP1]])
; CHECK-NEXT: [[TMP6:%.*]] = call i64 (...) @xd.iext.i64(i32 [[TMP5]])
; CHECK-NEXT: call void (...) @xd.write(i64 [[TMP6]])
; CHECK-NEXT: [[TMP7:%.*]] = call <2 x i32> @xd.read.v2i32()
; CHECK-NEXT: [[TMP8:%.*]] = call target("xd.vector", i32, 1, 2) (...) @xd.fromfixedvector.txd.vector_i32_1_2t(<2 x i32> [[TMP7]])
; CHECK-NEXT: [[TMP9:%.*]] = call target("xd.vector", i32, 1, 4) @xd.read.txd.vector_i32_1_4t()
; CHECK-NEXT: store target("xd.vector", i32, 1, 4) [[TMP9]], ptr [[TMP0]], align 16
; CHECK-NEXT: [[TMP10:%.*]] = load target("xd.vector", i32, 1, 4), ptr [[TMP0]], align 16
; CHECK-NEXT: [[TMP11:%.*]] = call i32 (...) @xd.extractelement.i32(target("xd.vector", i32, 1, 4) [[TMP10]], i32 [[TMP1]])
; CHECK-NEXT: [[TMP12:%.*]] = call i32 (...) @xd.extractelement.i32(target("xd.vector", i32, 1, 4) [[TMP10]], i32 2)
; CHECK-NEXT: [[TMP13:%.*]] = add i32 [[TMP11]], [[TMP12]]
; CHECK-NEXT: [[TMP14:%.*]] = call target("xd.vector", i32, 1, 2) (...) @xd.insertelement.txd.vector_i32_1_2t(target("xd.vector", i32, 1, 2) [[TMP8]], i32 [[TMP13]], i32 [[TMP1]])
; CHECK-NEXT: [[TMP15:%.*]] = call target("xd.vector", i32, 1, 2) (...) @xd.insertelement.txd.vector_i32_1_2t(target("xd.vector", i32, 1, 2) [[TMP14]], i32 [[TMP11]], i32 1)
; CHECK-NEXT: call void (...) @xd.write(target("xd.vector", i32, 1, 2) [[TMP15]])
; CHECK-NEXT: [[TMP16:%.*]] = call ptr @xd.read.p0()
; CHECK-NEXT: [[TMP17:%.*]] = call i8 (...) @xd.stream.add.i8(ptr [[TMP16]], i64 14, i8 0)
; CHECK-NEXT: call void (...) @xd.write(i8 [[TMP17]])
; CHECK-NEXT: [[TMP18:%.*]] = call target("xd.handle") @xd.handle.get()
; CHECK-NEXT: [[TMP19:%.*]] = call [[TMP0]] @xd.read.s_s()
; CHECK-NEXT: [[TMP20:%.*]] = call [[TMP1]] @xd.read.s_s_0()
; CHECK-NEXT: [[TMP21:%.*]] = call [[TMP2]] @xd.read.s_s_1()
; CHECK-NEXT: call void (...) @xd.write([[TMP0]] [[TMP19]])
; CHECK-NEXT: call void (...) @xd.write([[TMP1]] [[TMP20]])
; CHECK-NEXT: call void (...) @xd.write([[TMP2]] [[TMP21]])
; CHECK-NEXT: ret void
;
;
; TYPED-LABEL: @example-typed(
; TYPED-NEXT: entry:
; TYPED-NEXT: [[TMP0:%.*]] = call [[TMP0]] @xd.read.s_s()
; TYPED-NEXT: [[TMP1:%.*]] = call [[TMP1]] @xd.read.s_s_0()
; TYPED-NEXT: [[TMP2:%.*]] = call [[TMP2]] @xd.read.s_s_1()
; TYPED-NEXT: call void (...) @xd.write([[TMP0]] [[TMP0]])
; TYPED-NEXT: call void (...) @xd.write([[TMP1]] [[TMP1]])
; TYPED-NEXT: call void (...) @xd.write([[TMP2]] [[TMP2]])
; TYPED-NEXT: ret void
;