xref: /llvm-project/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/fptosi_and_fptoui.mir (revision 48904e9452de81375bd55d830d08e51cc8f2ec7e)
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=FP32
3# RUN: llc -O0 -mtriple=mipsel-linux-gnu -mattr=+fp64,+mips32r2 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=FP64
4--- |
5
6  define void @f32toi32() {entry: ret void}
7  define void @f64toi32() {entry: ret void}
8
9...
10---
11name:            f32toi32
12alignment:       4
13legalized:       true
14regBankSelected: true
15tracksRegLiveness: true
16body:             |
17  bb.1.entry:
18    liveins: $f12
19
20    ; FP32-LABEL: name: f32toi32
21    ; FP32: liveins: $f12
22    ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12
23    ; FP32: [[TRUNC_W_S:%[0-9]+]]:fgr32 = TRUNC_W_S [[COPY]]
24    ; FP32: [[MFC1_:%[0-9]+]]:gpr32 = MFC1 [[TRUNC_W_S]]
25    ; FP32: $v0 = COPY [[MFC1_]]
26    ; FP32: RetRA implicit $v0
27    ; FP64-LABEL: name: f32toi32
28    ; FP64: liveins: $f12
29    ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12
30    ; FP64: [[TRUNC_W_S:%[0-9]+]]:fgr32 = TRUNC_W_S [[COPY]]
31    ; FP64: [[MFC1_:%[0-9]+]]:gpr32 = MFC1 [[TRUNC_W_S]]
32    ; FP64: $v0 = COPY [[MFC1_]]
33    ; FP64: RetRA implicit $v0
34    %0:fprb(s32) = COPY $f12
35    %1:gprb(s32) = G_FPTOSI %0(s32)
36    $v0 = COPY %1(s32)
37    RetRA implicit $v0
38
39...
40---
41name:            f64toi32
42alignment:       4
43legalized:       true
44regBankSelected: true
45tracksRegLiveness: true
46body:             |
47  bb.1.entry:
48    liveins: $d6
49
50    ; FP32-LABEL: name: f64toi32
51    ; FP32: liveins: $d6
52    ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6
53    ; FP32: [[TRUNC_W_D32_:%[0-9]+]]:fgr32 = TRUNC_W_D32 [[COPY]]
54    ; FP32: [[MFC1_:%[0-9]+]]:gpr32 = MFC1 [[TRUNC_W_D32_]]
55    ; FP32: $v0 = COPY [[MFC1_]]
56    ; FP32: RetRA implicit $v0
57    ; FP64-LABEL: name: f64toi32
58    ; FP64: liveins: $d6
59    ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6
60    ; FP64: [[TRUNC_W_D64_:%[0-9]+]]:fgr32 = TRUNC_W_D64 [[COPY]]
61    ; FP64: [[MFC1_:%[0-9]+]]:gpr32 = MFC1 [[TRUNC_W_D64_]]
62    ; FP64: $v0 = COPY [[MFC1_]]
63    ; FP64: RetRA implicit $v0
64    %0:fprb(s64) = COPY $d6
65    %1:gprb(s32) = G_FPTOSI %0(s64)
66    $v0 = COPY %1(s32)
67    RetRA implicit $v0
68
69...
70