Skip to content

Commit 9182dc7

Browse files
committed
[X86] Add llvm.roundeven test cases. Add f80 tests cases for constrained intrinsics that lower to libcalls. NFC
1 parent 60a5799 commit 9182dc7

File tree

5 files changed

+1979
-0
lines changed

5 files changed

+1979
-0
lines changed

llvm/test/CodeGen/X86/fp-cvt.ll

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,3 +1090,55 @@ define x86_fp80 @rint_fp80_ld(x86_fp80 *%a0) nounwind {
10901090
}
10911091

10921092
declare x86_fp80 @llvm.rint.f80(x86_fp80 %p)
1093+
1094+
;
1095+
; roundeven
1096+
;
1097+
1098+
define x86_fp80 @roundeven_fp80(x86_fp80 %a0) nounwind {
1099+
; X86-LABEL: roundeven_fp80:
1100+
; X86: # %bb.0:
1101+
; X86-NEXT: subl $12, %esp
1102+
; X86-NEXT: fldt {{[0-9]+}}(%esp)
1103+
; X86-NEXT: fstpt (%esp)
1104+
; X86-NEXT: calll roundevenl
1105+
; X86-NEXT: addl $12, %esp
1106+
; X86-NEXT: retl
1107+
;
1108+
; X64-LABEL: roundeven_fp80:
1109+
; X64: # %bb.0:
1110+
; X64-NEXT: subq $24, %rsp
1111+
; X64-NEXT: fldt {{[0-9]+}}(%rsp)
1112+
; X64-NEXT: fstpt (%rsp)
1113+
; X64-NEXT: callq roundevenl
1114+
; X64-NEXT: addq $24, %rsp
1115+
; X64-NEXT: retq
1116+
%1 = call x86_fp80 @llvm.roundeven.f80(x86_fp80 %a0)
1117+
ret x86_fp80 %1
1118+
}
1119+
1120+
define x86_fp80 @roundeven_fp80_ld(x86_fp80 *%a0) nounwind {
1121+
; X86-LABEL: roundeven_fp80_ld:
1122+
; X86: # %bb.0:
1123+
; X86-NEXT: subl $12, %esp
1124+
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
1125+
; X86-NEXT: fldt (%eax)
1126+
; X86-NEXT: fstpt (%esp)
1127+
; X86-NEXT: calll roundevenl
1128+
; X86-NEXT: addl $12, %esp
1129+
; X86-NEXT: retl
1130+
;
1131+
; X64-LABEL: roundeven_fp80_ld:
1132+
; X64: # %bb.0:
1133+
; X64-NEXT: subq $24, %rsp
1134+
; X64-NEXT: fldt (%rdi)
1135+
; X64-NEXT: fstpt (%rsp)
1136+
; X64-NEXT: callq roundevenl
1137+
; X64-NEXT: addq $24, %rsp
1138+
; X64-NEXT: retq
1139+
%1 = load x86_fp80, x86_fp80 *%a0
1140+
%2 = call x86_fp80 @llvm.roundeven.f80(x86_fp80 %1)
1141+
ret x86_fp80 %2
1142+
}
1143+
1144+
declare x86_fp80 @llvm.roundeven.f80(x86_fp80 %p)

0 commit comments

Comments
 (0)