1; RUN: opt -S < %s -function-attrs | FileCheck %s 2; RUN: opt -S < %s -passes=function-attrs | FileCheck %s 3 4; CHECK: Function Attrs 5; CHECK-SAME: inaccessiblememonly 6; CHECK-NEXT: declare void @llvm.sideeffect() 7declare void @llvm.sideeffect() 8 9; Don't add readnone or similar attributes when an @llvm.sideeffect() intrinsic 10; is present. 11 12; CHECK: Function Attrs 13; CHECK-NOT: readnone 14; CHECK: define void @test() 15define void @test() { 16 call void @llvm.sideeffect() 17 ret void 18} 19 20; CHECK: Function Attrs 21; CHECK-NOT: readnone 22; CHECK: define void @loop() 23define void @loop() { 24 br label %loop 25 26loop: 27 call void @llvm.sideeffect() 28 br label %loop 29} 30