Skip to content

Commit c9b41e4

Browse files
author
mattarde
committed
add gisel output
1 parent cd7f7cf commit c9b41e4

File tree

4 files changed

+31
-66
lines changed

4 files changed

+31
-66
lines changed

llvm/lib/Target/X86/GISel/X86LegalizerInfo.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,8 @@ X86LegalizerInfo::X86LegalizerInfo(const X86Subtarget &STI,
580580
.lower();
581581

582582
// fp intrinsics
583-
getActionDefinitionsBuilder(G_INTRINSIC_ROUNDEVEN)
583+
getActionDefinitionsBuilder(
584+
{G_INTRINSIC_ROUNDEVEN, G_INTRINSIC_TRUNC, G_FCEIL, G_FFLOOR})
584585
.scalarize(0)
585586
.minScalar(0, LLT::scalar(32))
586587
.libcall();

llvm/test/CodeGen/X86/isel-ceil.ll

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,12 @@ define float @ceil_f32(float %a) nounwind readnone {
1818
; FASTISEL-X64-NEXT: popq %rax
1919
; FASTISEL-X64-NEXT: retq
2020
;
21-
; X86-LABEL: ceil_f32:
22-
; X86: # %bb.0:
23-
; X86-NEXT: subl $12, %esp
24-
; X86-NEXT: flds {{[0-9]+}}(%esp)
25-
; X86-NEXT: fstps (%esp)
26-
; X86-NEXT: calll ceilf
27-
; X86-NEXT: addl $12, %esp
28-
; X86-NEXT: retl
29-
;
3021
; GISEL-X64-LABEL: ceil_f32:
3122
; GISEL-X64: # %bb.0:
32-
; GISEL-X64-NEXT: jmp ceilf@PLT # TAILCALL
23+
; GISEL-X64-NEXT: pushq %rax
24+
; GISEL-X64-NEXT: callq ceilf
25+
; GISEL-X64-NEXT: popq %rax
26+
; GISEL-X64-NEXT: retq
3327
%c = call float @llvm.ceil.f32(float %a)
3428
ret float %c
3529
}
@@ -46,18 +40,12 @@ define double @ceil_f64(double %a) nounwind readnone {
4640
; FASTISEL-X64-NEXT: popq %rax
4741
; FASTISEL-X64-NEXT: retq
4842
;
49-
; X86-LABEL: ceil_f64:
50-
; X86: # %bb.0:
51-
; X86-NEXT: subl $12, %esp
52-
; X86-NEXT: fldl {{[0-9]+}}(%esp)
53-
; X86-NEXT: fstpl (%esp)
54-
; X86-NEXT: calll ceil
55-
; X86-NEXT: addl $12, %esp
56-
; X86-NEXT: retl
57-
;
5843
; GISEL-X64-LABEL: ceil_f64:
5944
; GISEL-X64: # %bb.0:
60-
; GISEL-X64-NEXT: jmp ceil@PLT # TAILCALL
45+
; GISEL-X64-NEXT: pushq %rax
46+
; GISEL-X64-NEXT: callq ceil
47+
; GISEL-X64-NEXT: popq %rax
48+
; GISEL-X64-NEXT: retq
6149
%c = call double @llvm.ceil.f64(double %a)
6250
ret double %c
6351
}
@@ -86,7 +74,7 @@ define x86_fp80 @ceil_f80(x86_fp80 %a) nounwind readnone {
8674
; GISEL-X64-NEXT: subq $24, %rsp
8775
; GISEL-X64-NEXT: fldt {{[0-9]+}}(%rsp)
8876
; GISEL-X64-NEXT: fstpt (%rsp)
89-
; GISEL-X64-NEXT: callq ceill@PLT
77+
; GISEL-X64-NEXT: callq ceill
9078
; GISEL-X64-NEXT: addq $24, %rsp
9179
; GISEL-X64-NEXT: retq
9280
%c = call x86_fp80 @llvm.ceil.f80(x86_fp80 %a)

llvm/test/CodeGen/X86/isel-floor.ll

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,12 @@ define float @floor_f32(float %a) nounwind readnone {
1818
; FASTISEL-X64-NEXT: popq %rax
1919
; FASTISEL-X64-NEXT: retq
2020
;
21-
; X86-LABEL: floor_f32:
22-
; X86: # %bb.0:
23-
; X86-NEXT: subl $12, %esp
24-
; X86-NEXT: flds {{[0-9]+}}(%esp)
25-
; X86-NEXT: fstps (%esp)
26-
; X86-NEXT: calll floorf
27-
; X86-NEXT: addl $12, %esp
28-
; X86-NEXT: retl
29-
;
3021
; GISEL-X64-LABEL: floor_f32:
3122
; GISEL-X64: # %bb.0:
32-
; GISEL-X64-NEXT: jmp floorf@PLT # TAILCALL
23+
; GISEL-X64-NEXT: pushq %rax
24+
; GISEL-X64-NEXT: callq floorf
25+
; GISEL-X64-NEXT: popq %rax
26+
; GISEL-X64-NEXT: retq
3327
%c = call float @llvm.floor.f32(float %a)
3428
ret float %c
3529
}
@@ -46,18 +40,12 @@ define double @floor_f64(double %a) nounwind readnone {
4640
; FASTISEL-X64-NEXT: popq %rax
4741
; FASTISEL-X64-NEXT: retq
4842
;
49-
; X86-LABEL: floor_f64:
50-
; X86: # %bb.0:
51-
; X86-NEXT: subl $12, %esp
52-
; X86-NEXT: fldl {{[0-9]+}}(%esp)
53-
; X86-NEXT: fstpl (%esp)
54-
; X86-NEXT: calll floor
55-
; X86-NEXT: addl $12, %esp
56-
; X86-NEXT: retl
57-
;
5843
; GISEL-X64-LABEL: floor_f64:
5944
; GISEL-X64: # %bb.0:
60-
; GISEL-X64-NEXT: jmp floor@PLT # TAILCALL
45+
; GISEL-X64-NEXT: pushq %rax
46+
; GISEL-X64-NEXT: callq floor
47+
; GISEL-X64-NEXT: popq %rax
48+
; GISEL-X64-NEXT: retq
6149
%c = call double @llvm.floor.f64(double %a)
6250
ret double %c
6351
}
@@ -86,7 +74,7 @@ define x86_fp80 @floor_f80(x86_fp80 %a) nounwind readnone {
8674
; GISEL-X64-NEXT: subq $24, %rsp
8775
; GISEL-X64-NEXT: fldt {{[0-9]+}}(%rsp)
8876
; GISEL-X64-NEXT: fstpt (%rsp)
89-
; GISEL-X64-NEXT: callq floorl@PLT
77+
; GISEL-X64-NEXT: callq floorl
9078
; GISEL-X64-NEXT: addq $24, %rsp
9179
; GISEL-X64-NEXT: retq
9280
%c = call x86_fp80 @llvm.floor.f80(x86_fp80 %a)

llvm/test/CodeGen/X86/isel-ftrunc.ll

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
; RUN: llc < %s -mtriple=x86_64-linux-gnu -fast-isel | FileCheck %s --check-prefixes=X64,FASTISEL-X64
44
; RUN: llc < %s -mtriple=i686-linux-gnu | FileCheck %s --check-prefixes=X86
55
; RUN: llc < %s -mtriple=i686-linux-gnu -fast-isel | FileCheck %s --check-prefixes=X86
6-
; RUN: llc < %s -mtriple=x86_64-linux-gnu -global-isel -global-isel-abort=2 | FileCheck %s --check-prefixes=GISEL-X64
7-
; RUN: llc < %s -mtriple=i686-linux-gnu -global-isel -global-isel-abort=2 | FileCheck %s --check-prefixes=X86
6+
; RUN: llc < %s -mtriple=x86_64-linux-gnu -global-isel -global-isel-abort=1 | FileCheck %s --check-prefixes=GISEL-X64
7+
; RUN: llc < %s -mtriple=i686-linux-gnu -global-isel -global-isel-abort=1 | FileCheck %s --check-prefixes=X86
88

99
define float @trunc_f32(float %a) nounwind readnone {
1010
; DAG-X64-LABEL: trunc_f32:
@@ -18,18 +18,12 @@ define float @trunc_f32(float %a) nounwind readnone {
1818
; FASTISEL-X64-NEXT: popq %rax
1919
; FASTISEL-X64-NEXT: retq
2020
;
21-
; X86-LABEL: trunc_f32:
22-
; X86: # %bb.0:
23-
; X86-NEXT: subl $12, %esp
24-
; X86-NEXT: flds {{[0-9]+}}(%esp)
25-
; X86-NEXT: fstps (%esp)
26-
; X86-NEXT: calll truncf
27-
; X86-NEXT: addl $12, %esp
28-
; X86-NEXT: retl
29-
;
3021
; GISEL-X64-LABEL: trunc_f32:
3122
; GISEL-X64: # %bb.0:
32-
; GISEL-X64-NEXT: jmp truncf@PLT # TAILCALL
23+
; GISEL-X64-NEXT: pushq %rax
24+
; GISEL-X64-NEXT: callq truncf
25+
; GISEL-X64-NEXT: popq %rax
26+
; GISEL-X64-NEXT: retq
3327
%c = call float @llvm.trunc.f32(float %a)
3428
ret float %c
3529
}
@@ -46,18 +40,12 @@ define double @trunc_f64(double %a) nounwind readnone {
4640
; FASTISEL-X64-NEXT: popq %rax
4741
; FASTISEL-X64-NEXT: retq
4842
;
49-
; X86-LABEL: trunc_f64:
50-
; X86: # %bb.0:
51-
; X86-NEXT: subl $12, %esp
52-
; X86-NEXT: fldl {{[0-9]+}}(%esp)
53-
; X86-NEXT: fstpl (%esp)
54-
; X86-NEXT: calll trunc
55-
; X86-NEXT: addl $12, %esp
56-
; X86-NEXT: retl
57-
;
5843
; GISEL-X64-LABEL: trunc_f64:
5944
; GISEL-X64: # %bb.0:
60-
; GISEL-X64-NEXT: jmp trunc@PLT # TAILCALL
45+
; GISEL-X64-NEXT: pushq %rax
46+
; GISEL-X64-NEXT: callq trunc
47+
; GISEL-X64-NEXT: popq %rax
48+
; GISEL-X64-NEXT: retq
6149
%c = call double @llvm.trunc.f64(double %a)
6250
ret double %c
6351
}
@@ -86,7 +74,7 @@ define x86_fp80 @trunc_f80(x86_fp80 %a) nounwind readnone {
8674
; GISEL-X64-NEXT: subq $24, %rsp
8775
; GISEL-X64-NEXT: fldt {{[0-9]+}}(%rsp)
8876
; GISEL-X64-NEXT: fstpt (%rsp)
89-
; GISEL-X64-NEXT: callq truncl@PLT
77+
; GISEL-X64-NEXT: callq truncl
9078
; GISEL-X64-NEXT: addq $24, %rsp
9179
; GISEL-X64-NEXT: retq
9280
%c = call x86_fp80 @llvm.trunc.f80(x86_fp80 %a)

0 commit comments

Comments
 (0)