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.
64 lines
2.3 KiB
LLVM
64 lines
2.3 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-globals
|
|
; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -passes=amdgpu-attributor %s | FileCheck %s
|
|
|
|
%0 = type { ptr, ptr }
|
|
|
|
define internal fastcc i1 @widget(ptr %arg) {
|
|
; CHECK-LABEL: define {{[^@]+}}@widget
|
|
; CHECK-SAME: (ptr [[ARG:%.*]]) {
|
|
; CHECK-NEXT: bb:
|
|
; CHECK-NEXT: [[TMP:%.*]] = getelementptr inbounds [[TMP0:%.*]], ptr [[ARG]], i64 0, i32 1
|
|
; CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[TMP]], align 8
|
|
; CHECK-NEXT: [[TMP2:%.*]] = call fastcc double @baz(ptr [[TMP1]])
|
|
; CHECK-NEXT: ret i1 false
|
|
;
|
|
bb:
|
|
%tmp = getelementptr inbounds %0, ptr %arg, i64 0, i32 1
|
|
%tmp1 = load ptr, ptr %tmp, align 8
|
|
%tmp2 = call fastcc double @baz(ptr %tmp1)
|
|
ret i1 false
|
|
}
|
|
|
|
define internal fastcc double @baz(ptr %arg) {
|
|
; CHECK-LABEL: define {{[^@]+}}@baz
|
|
; CHECK-SAME: (ptr [[ARG:%.*]]) {
|
|
; CHECK-NEXT: bb:
|
|
; CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[ARG]], align 8
|
|
; CHECK-NEXT: [[TMP2:%.*]] = tail call double [[TMP1]]()
|
|
; CHECK-NEXT: br label [[BB3:%.*]]
|
|
; CHECK: bb3:
|
|
; CHECK-NEXT: [[TMP4:%.*]] = getelementptr inbounds [[TMP0:%.*]], ptr [[ARG]], i64 0, i32 1
|
|
; CHECK-NEXT: br label [[BB5:%.*]]
|
|
; CHECK: bb5:
|
|
; CHECK-NEXT: [[TMP6:%.*]] = load ptr, ptr [[TMP4]], align 8
|
|
; CHECK-NEXT: [[TMP7:%.*]] = call fastcc i1 @widget(ptr [[TMP6]])
|
|
; CHECK-NEXT: br label [[BB5]]
|
|
;
|
|
bb:
|
|
%tmp1 = load ptr, ptr %arg, align 8
|
|
%tmp2 = tail call double %tmp1()
|
|
br label %bb3
|
|
|
|
bb3: ; preds = %bb
|
|
%tmp4 = getelementptr inbounds %0, ptr %arg, i64 0, i32 1
|
|
br label %bb5
|
|
|
|
bb5: ; preds = %bb5, %bb3
|
|
%tmp6 = load ptr, ptr %tmp4, align 8
|
|
%tmp7 = call fastcc i1 @widget(ptr %tmp6)
|
|
br label %bb5
|
|
}
|
|
|
|
define amdgpu_kernel void @entry() {
|
|
; CHECK-LABEL: define {{[^@]+}}@entry() {
|
|
; CHECK-NEXT: [[ALLOCA:%.*]] = alloca [[TMP0:%.*]], align 8, addrspace(5)
|
|
; CHECK-NEXT: [[CAST:%.*]] = addrspacecast ptr addrspace(5) [[ALLOCA]] to ptr
|
|
; CHECK-NEXT: [[ARST:%.*]] = call double @baz(ptr [[CAST]])
|
|
; CHECK-NEXT: ret void
|
|
;
|
|
%alloca = alloca %0, align 8, addrspace(5)
|
|
%cast = addrspacecast ptr addrspace(5) %alloca to ptr
|
|
%arst = call double @baz(ptr %cast)
|
|
ret void
|
|
}
|