]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGen/X86/GlobalISel/select-fptrunc-scalar.mir
Vendor import of llvm trunk r351319 (just before the release_80 branch
[FreeBSD/FreeBSD.git] / test / CodeGen / X86 / GlobalISel / select-fptrunc-scalar.mir
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=x86_64-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=ALL
3 --- |
4
5   define float @test_fptrunc(double %in) {
6     %res = fptrunc double %in to float
7     ret float %res
8   }
9
10 ...
11 ---
12 name:            test_fptrunc
13 alignment:       4
14 legalized:       true
15 regBankSelected: true
16 tracksRegLiveness: true
17 registers:
18   - { id: 0, class: vecr }
19   - { id: 1, class: vecr }
20   - { id: 2, class: vecr }
21   - { id: 3, class: vecr }
22 body:             |
23   bb.1 (%ir-block.0):
24     liveins: $xmm0
25
26     ; ALL-LABEL: name: test_fptrunc
27     ; ALL: liveins: $xmm0
28     ; ALL: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
29     ; ALL: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
30     ; ALL: [[CVTSD2SSrr:%[0-9]+]]:fr32 = CVTSD2SSrr [[COPY1]]
31     ; ALL: [[COPY2:%[0-9]+]]:vr128 = COPY [[CVTSD2SSrr]]
32     ; ALL: $xmm0 = COPY [[COPY2]]
33     ; ALL: RET 0, implicit $xmm0
34     %1:vecr(s128) = COPY $xmm0
35     %0:vecr(s64) = G_TRUNC %1(s128)
36     %2:vecr(s32) = G_FPTRUNC %0(s64)
37     %3:vecr(s128) = G_ANYEXT %2(s32)
38     $xmm0 = COPY %3(s128)
39     RET 0, implicit $xmm0
40
41 ...