This is one of the string attributes that takes a boolean value for no reason. There is no point in ever writing this with an explicit false. Stop adding the noise and reporting an unnecessary change.
31 lines
1.6 KiB
LLVM
31 lines
1.6 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals all --version 5
|
|
; RUN: opt -S -mtriple=amdgcn-unknown-amdhsa -mcpu=gfx90a -passes=amdgpu-attributor %s | FileCheck %s
|
|
|
|
; Make sure we do not infer anything about implicit inputs through an
|
|
; intrinsic call which is not nocallback.
|
|
|
|
declare zeroext i32 @return_i32()
|
|
|
|
define i32 @test_i32_return() gc "statepoint-example" {
|
|
; CHECK-LABEL: define i32 @test_i32_return(
|
|
; CHECK-SAME: ) #[[ATTR0:[0-9]+]] gc "statepoint-example" {
|
|
; CHECK-NEXT: [[ENTRY:.*:]]
|
|
; CHECK-NEXT: [[SAFEPOINT_TOKEN:%.*]] = tail call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(i32 ()) @return_i32, i32 0, i32 0, i32 0, i32 0)
|
|
; CHECK-NEXT: [[CALL1:%.*]] = call zeroext i32 @llvm.experimental.gc.result.i32(token [[SAFEPOINT_TOKEN]])
|
|
; CHECK-NEXT: ret i32 [[CALL1]]
|
|
;
|
|
entry:
|
|
%safepoint_token = tail call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(i32 ()) @return_i32, i32 0, i32 0, i32 0, i32 0)
|
|
%call1 = call zeroext i32 @llvm.experimental.gc.result.i32(token %safepoint_token)
|
|
ret i32 %call1
|
|
}
|
|
|
|
declare token @llvm.experimental.gc.statepoint.p0(i64 immarg, i32 immarg, ptr, i32 immarg, i32 immarg, ...)
|
|
declare i32 @llvm.experimental.gc.result.i32(token) #0
|
|
|
|
attributes #0 = { nocallback nofree nosync nounwind willreturn memory(none) }
|
|
;.
|
|
; CHECK: attributes #[[ATTR0]] = { "target-cpu"="gfx90a" }
|
|
; CHECK: attributes #[[ATTR1:[0-9]+]] = { nocallback nofree nosync nounwind willreturn memory(none) "target-cpu"="gfx90a" }
|
|
;.
|