xref: /llvm-project/llvm/test/Linker/nofpclass.ll (revision dd8181055494d8f973dfaaba282bb1ae6eab4d40)
1; RUN: llvm-link %s %S/Inputs/nofpclass.ll -S -o - | FileCheck -check-prefix=ORDER1 %s
2; RUN: llvm-link %S/Inputs/nofpclass.ll %s -S -o - | FileCheck -check-prefix=ORDER2 %s
3
4; Make sure nofpclass is dropped if the function was declared as
5; nofpclass, but not defined with nofpclass.
6
7; ORDER1: define float @caller(float %arg) {
8; ORDER1-NEXT: %result = call float @declared_as_nonan(float %arg)
9; ORDER1-NEXT: ret float %result
10
11; ORDER1: define float @declared_as_nonan(float %arg) {
12; ORDER1-NEXT: %add = fadd float %arg, 1.000000e+00
13; ORDER1-NEXT: ret float %add
14
15
16; ORDER2: define float @declared_as_nonan(float %arg) {
17; ORDER2-NEXT: %add = fadd float %arg, 1.000000e+00
18; ORDER2-NEXT: ret float %add
19
20; ORDER2: define float @caller(float %arg) {
21; ORDER2-NEXT: %result = call float @declared_as_nonan(float %arg)
22; ORDER2-NEXT: ret float %result
23
24
25declare nofpclass(nan) float @declared_as_nonan(float nofpclass(nan))
26
27define float @caller(float %arg) {
28  %result = call float @declared_as_nonan(float %arg)
29  ret float %result
30}
31