blob: 24a145908e00cec584dd039c77359b75c3773057 [file] [log] [blame]
Dan Gohman2c74fe92017-11-08 21:59:51 +00001; RUN: opt -S < %s -functionattrs | FileCheck %s
Fedor Sergeev6660fd02018-03-23 21:46:16 +00002; RUN: opt -S < %s -passes=function-attrs | FileCheck %s
Dan Gohman2c74fe92017-11-08 21:59:51 +00003
Fedor Sergeev6660fd02018-03-23 21:46:16 +00004; CHECK: Function Attrs
5; CHECK-SAME: inaccessiblememonly
6; CHECK-NEXT: declare void @llvm.sideeffect()
Dan Gohman2c74fe92017-11-08 21:59:51 +00007declare void @llvm.sideeffect()
8
9; Don't add readnone or similar attributes when an @llvm.sideeffect() intrinsic
10; is present.
11
Fedor Sergeev6660fd02018-03-23 21:46:16 +000012; CHECK: Function Attrs
13; CHECK-NOT: readnone
14; CHECK: define void @test()
Dan Gohman2c74fe92017-11-08 21:59:51 +000015define void @test() {
16 call void @llvm.sideeffect()
17 ret void
18}
19
Fedor Sergeev6660fd02018-03-23 21:46:16 +000020; CHECK: Function Attrs
21; CHECK-NOT: readnone
22; CHECK: define void @loop()
Dan Gohman2c74fe92017-11-08 21:59:51 +000023define void @loop() {
24 br label %loop
25
26loop:
27 call void @llvm.sideeffect()
28 br label %loop
29}