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.
58 lines
2.4 KiB
LLVM
58 lines
2.4 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals all --version 5
|
|
; RUN: opt -mtriple=amdgcn-amd-amdhsa -S -O3 %s | FileCheck --check-prefixes=GCN,UNSAFE %s
|
|
; RUN: opt -mtriple=amdgcn-amd-amdhsa -S -O3 -enable-no-nans-fp-math %s | FileCheck --check-prefixes=GCN,NONANS %s
|
|
|
|
declare void @extern() #0
|
|
|
|
define float @foo(float %x) #0 {
|
|
; GCN-LABEL: define float @foo(
|
|
; GCN-SAME: float [[X:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
|
|
; GCN-NEXT: [[ENTRY:.*:]]
|
|
; GCN-NEXT: tail call void @extern()
|
|
; GCN-NEXT: [[MUL:%.*]] = fmul float [[X]], 1.500000e+01
|
|
; GCN-NEXT: ret float [[MUL]]
|
|
;
|
|
entry:
|
|
call void @extern()
|
|
%mul = fmul float %x, 1.500000e+01
|
|
ret float %mul
|
|
}
|
|
|
|
define amdgpu_kernel void @caller(ptr addrspace(1) %p) #1 {
|
|
; GCN-LABEL: define amdgpu_kernel void @caller(
|
|
; GCN-SAME: ptr addrspace(1) captures(none) [[P:%.*]]) local_unnamed_addr #[[ATTR1:[0-9]+]] {
|
|
; GCN-NEXT: [[ENTRY:.*:]]
|
|
; GCN-NEXT: [[LOAD:%.*]] = load float, ptr addrspace(1) [[P]], align 4, !amdgpu.noclobber [[META0:![0-9]+]]
|
|
; GCN-NEXT: tail call void @extern()
|
|
; GCN-NEXT: [[MUL_I:%.*]] = fmul float [[LOAD]], 1.500000e+01
|
|
; GCN-NEXT: store float [[MUL_I]], ptr addrspace(1) [[P]], align 4
|
|
; GCN-NEXT: ret void
|
|
;
|
|
entry:
|
|
%load = load float, ptr addrspace(1) %p, align 4
|
|
%call = call fast float @foo(float %load)
|
|
store float %call, ptr addrspace(1) %p, align 4
|
|
ret void
|
|
}
|
|
|
|
attributes #0 = { nounwind "uniform-work-group-size"="false"}
|
|
attributes #1 = { nounwind "less-precise-fpmad"="true" "no-nans-fp-math"="true" }
|
|
|
|
; NOINFS: attributes #[[ATTR0]] = { nounwind "uniform-work-group-size"="false" }
|
|
; NOINFS: attributes #[[ATTR1]] = { nounwind "less-precise-fpmad"="false" "no-nans-fp-math"="false" "uniform-work-group-size"="false" }
|
|
; NOINFS: [[META0]] = !{}
|
|
;.
|
|
; UNSAFE: attributes #[[ATTR0]] = { nounwind "uniform-work-group-size"="false" }
|
|
; UNSAFE: attributes #[[ATTR1]] = { nounwind "less-precise-fpmad"="false" "no-nans-fp-math"="false" }
|
|
;.
|
|
; NONANS: attributes #[[ATTR0]] = { nounwind "no-nans-fp-math"="true" "uniform-work-group-size"="false" }
|
|
; NONANS: attributes #[[ATTR1]] = { nounwind "less-precise-fpmad"="false" "no-nans-fp-math"="true" }
|
|
;.
|
|
; UNSAFE: [[META0]] = !{}
|
|
;.
|
|
; NONANS: [[META0]] = !{}
|
|
;.
|
|
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
|
|
; NONANS: {{.*}}
|
|
; UNSAFE: {{.*}}
|