Mercurial > hg > CbC > CbC_llvm
comparison llvm/test/Feature/OperandBundles/function-attrs.ll @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | 2e18cbf3894f |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 ; RUN: opt -S -functionattrs < %s | FileCheck %s | |
2 | |
3 declare void @f_readonly() readonly | |
4 declare void @f_readnone() readnone | |
5 | |
6 define void @test_0(i32* %x) { | |
7 ; FunctionAttrs must not infer readonly / readnone for %x | |
8 | |
9 ; CHECK-LABEL: define void @test_0(i32* %x) #2 { | |
10 entry: | |
11 ; CHECK: call void @f_readonly() [ "foo"(i32* %x) ] | |
12 call void @f_readonly() [ "foo"(i32* %x) ] | |
13 ret void | |
14 } | |
15 | |
16 define void @test_1(i32* %x) { | |
17 ; FunctionAttrs must not infer readonly / readnone for %x | |
18 | |
19 ; CHECK-LABEL: define void @test_1(i32* %x) #2 { | |
20 entry: | |
21 ; CHECK: call void @f_readnone() [ "foo"(i32* %x) ] | |
22 call void @f_readnone() [ "foo"(i32* %x) ] | |
23 ret void | |
24 } | |
25 | |
26 define void @test_2(i32* %x) { | |
27 ; The "deopt" operand bundle does not capture or write to %x. | |
28 | |
29 ; CHECK-LABEL: define void @test_2(i32* nocapture readonly %x) | |
30 entry: | |
31 call void @f_readonly() [ "deopt"(i32* %x) ] | |
32 ret void | |
33 } | |
34 | |
35 ; CHECK: attributes #2 = { nofree } | |
36 |