blob: 51e432d84d3085337ec1ba8d43fb052f0ff66c80 [file] [edit]
; RUN: llc < %s -fast-isel -stop-after=finalize-isel -mtriple=x86_64-unknown-linux | FileCheck %s
;
; Verify that llvm.fake.use is lowered to FAKE_USE by FastISel.
; This is relevant for compilers (e.g. Flang) that use llvm.fake.use at O0
; for addresses of variables that are in registers rather than in allocas (e.g.
; addresses of arguments in Flang).
; CHECK-LABEL: name: test_fake_use
; CHECK: hasFakeUses: true
; CHECK: FAKE_USE %{{[0-9]+}}
; CHECK: FAKE_USE %{{[0-9]+}}
; CHECK: FAKE_USE %{{[0-9]+}}
; CHECK: RET64
define void @test_fake_use(ptr %p, i32 %x, i64 %y) {
entry:
notail call void (...) @llvm.fake.use(ptr %p)
notail call void (...) @llvm.fake.use(i32 %x)
notail call void (...) @llvm.fake.use(i64 %y)
ret void
}