• Home
  • Raw
  • Download

Lines Matching refs:preallocated

3 declare token @llvm.call.preallocated.setup(i32)
4 declare i8* @llvm.call.preallocated.arg(token, i32)
5 declare void @llvm.call.preallocated.teardown(token)
11 declare void @foo1(i32* preallocated(i32))
12 declare void @foo2(i32* preallocated(i32), i32*, i32* preallocated(i32))
15 ; CHECK: llvm.call.preallocated.arg must be called with a "preallocated" call site attribute
17 %cs = call token @llvm.call.preallocated.setup(i32 1)
18 %x = call i8* @llvm.call.preallocated.arg(token %cs, i32 0)
20 call void @foo1(i32* preallocated(i32) %y) ["preallocated"(token %cs)]
24 ; CHECK: preallocated as a call site attribute can only be on llvm.call.preallocated.arg
26 call void @foo0() preallocated(i32)
30 ; CHECK: "preallocated" argument must be a token from llvm.call.preallocated.setup
33 call void @foo0() ["preallocated"(i32 %i)]
37 ; CHECK: "preallocated" argument must be a token from llvm.call.preallocated.setup
40 call void @foo0() ["preallocated"(token %cs)]
44 ; CHECK: Expected exactly one preallocated bundle operand
46 %cs0 = call token @llvm.call.preallocated.setup(i32 0)
47 %cs1 = call token @llvm.call.preallocated.setup(i32 0)
48 call void @foo0() ["preallocated"(token %cs0, token %cs1)]
52 ; CHECK: Multiple preallocated operand bundles
54 %cs0 = call token @llvm.call.preallocated.setup(i32 0)
55 %cs1 = call token @llvm.call.preallocated.setup(i32 0)
56 call void @foo0() ["preallocated"(token %cs0), "preallocated"(token %cs1)]
62 %cs = call token @llvm.call.preallocated.setup(i32 1)
63 %x = call i8* @llvm.call.preallocated.arg(token %cs, i32 0) preallocated(i32)
65 call void @foo1(i32* preallocated(i32) %y) ["preallocated"(token %cs)]
66 call void @foo1(i32* preallocated(i32) %y) ["preallocated"(token %cs)]
73 %cs = call token @llvm.call.preallocated.setup(i32 %ac)
79 %cs = call token @llvm.call.preallocated.setup(i32 2)
80 %a0 = call i8* @llvm.call.preallocated.arg(token %cs, i32 2) preallocated(i32)
84 ; CHECK: Attribute 'preallocated' type does not match parameter
86 %cs = call token @llvm.call.preallocated.setup(i32 1)
87 %x = call i8* @llvm.call.preallocated.arg(token %cs, i32 0) preallocated(i32)
89 call void @foo1(i32* preallocated(i8) %y) ["preallocated"(token %cs)]
93 ; CHECK: preallocated operand either requires a preallocated bundle or the call to be musttail
95 %cs = call token @llvm.call.preallocated.setup(i32 1)
96 %x = call i8* @llvm.call.preallocated.arg(token %cs, i32 0) preallocated(i32)
98 call void @foo1(i32* preallocated(i32) %y)
102 ; CHECK: arg size must be equal to number of preallocated arguments
104 %cs = call token @llvm.call.preallocated.setup(i32 3)
105 %x = call i8* @llvm.call.preallocated.arg(token %cs, i32 0) preallocated(i32)
107 %y = call i8* @llvm.call.preallocated.arg(token %cs, i32 1) preallocated(i32)
110 …call void @foo2(i32* preallocated(i32) %x1, i32* %a, i32* preallocated(i32) %y1) ["preallocated"(t…
114 ; CHECK: token argument must be a llvm.call.preallocated.setup
117 %x = call i8* @llvm.call.preallocated.arg(token %t, i32 1) preallocated(i32)
121 ; CHECK: cannot use preallocated intrinsics on a call without preallocated arguments
123 %cs = call token @llvm.call.preallocated.setup(i32 0)
124 call void @foo0() ["preallocated"(token %cs)]
128 ; CHECK: preallocated operand either requires a preallocated bundle or the call to be musttail
129 define void @musttail_and_bundle(i32* preallocated(i32) %a) {
130 %cs = call token @llvm.call.preallocated.setup(i32 0)
131 musttail call void @musttail_and_bundle(i32* preallocated(i32) %a) ["preallocated"(token %cs)]
136 define void @musttail_attr_no_match(i32* preallocated(i32) %a) {
141 ; CHECK: token argument must be a llvm.call.preallocated.setup
144 call void @llvm.call.preallocated.teardown(token %cs)
150 declare void @not_pointer(i32 preallocated(i32))