30 lines
663 B
LLVM
30 lines
663 B
LLVM
; RUN: opt -S < %s -function-attrs | FileCheck %s
|
|
; RUN: opt -S < %s -passes=function-attrs | FileCheck %s
|
|
|
|
; CHECK: Function Attrs
|
|
; CHECK-SAME: inaccessiblememonly
|
|
; CHECK-NEXT: declare void @llvm.sideeffect()
|
|
declare void @llvm.sideeffect()
|
|
|
|
; Don't add readnone or similar attributes when an @llvm.sideeffect() intrinsic
|
|
; is present.
|
|
|
|
; CHECK: Function Attrs
|
|
; CHECK-NOT: readnone
|
|
; CHECK: define void @test()
|
|
define void @test() {
|
|
call void @llvm.sideeffect()
|
|
ret void
|
|
}
|
|
|
|
; CHECK: Function Attrs
|
|
; CHECK-NOT: readnone
|
|
; CHECK: define void @loop()
|
|
define void @loop() {
|
|
br label %loop
|
|
|
|
loop:
|
|
call void @llvm.sideeffect()
|
|
br label %loop
|
|
}
|