
Set this on any source level floating-point type argument, return value, call return or outgoing parameter which is lowered to a valid IR type for the attribute. Currently this isn't applied to emitted intrinsics since those don't go through ABI code.
31 lines
1.0 KiB
LLVM
31 lines
1.0 KiB
LLVM
; RUN: llvm-link %s %S/Inputs/nofpclass.ll -S -o - | FileCheck -check-prefix=ORDER1 %s
|
|
; RUN: llvm-link %S/Inputs/nofpclass.ll %s -S -o - | FileCheck -check-prefix=ORDER2 %s
|
|
|
|
; Make sure nofpclass is dropped if the function was declared as
|
|
; nofpclass, but not defined with nofpclass.
|
|
|
|
; ORDER1: define float @caller(float %arg) {
|
|
; ORDER1-NEXT: %result = call float @declared_as_nonan(float %arg)
|
|
; ORDER1-NEXT: ret float %result
|
|
|
|
; ORDER1: define float @declared_as_nonan(float %arg) {
|
|
; ORDER1-NEXT: %add = fadd float %arg, 1.000000e+00
|
|
; ORDER1-NEXT: ret float %add
|
|
|
|
|
|
; ORDER2: define float @declared_as_nonan(float %arg) {
|
|
; ORDER2-NEXT: %add = fadd float %arg, 1.000000e+00
|
|
; ORDER2-NEXT: ret float %add
|
|
|
|
; ORDER2: define float @caller(float %arg) {
|
|
; ORDER2-NEXT: %result = call float @declared_as_nonan(float %arg)
|
|
; ORDER2-NEXT: ret float %result
|
|
|
|
|
|
declare nofpclass(nan) float @declared_as_nonan(float nofpclass(nan))
|
|
|
|
define float @caller(float %arg) {
|
|
%result = call float @declared_as_nonan(float %arg)
|
|
ret float %result
|
|
}
|