1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -march=amdgcn -mcpu=tahiti -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
3# RUN: llc -march=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
4
5---
6name: fract_s32_vs
7legalized: true
8regBankSelected: true
9tracksRegLiveness: true
10
11body: |
12  bb.0:
13    liveins: $sgpr0
14
15    ; CHECK-LABEL: name: fract_s32_vs
16    ; CHECK: liveins: $sgpr0
17    ; CHECK: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
18    ; CHECK: %1:vgpr_32 = nofpexcept V_FRACT_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
19    ; CHECK: S_ENDPGM 0, implicit %1
20    %0:sgpr(s32) = COPY $sgpr0
21    %1:vgpr(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.fract), %0
22    S_ENDPGM 0, implicit %1
23...
24
25---
26name: fract_s32_vv
27legalized: true
28regBankSelected: true
29tracksRegLiveness: true
30
31body: |
32  bb.0:
33    liveins: $vgpr0
34
35    ; CHECK-LABEL: name: fract_s32_vv
36    ; CHECK: liveins: $vgpr0
37    ; CHECK: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
38    ; CHECK: %1:vgpr_32 = nofpexcept V_FRACT_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
39    ; CHECK: S_ENDPGM 0, implicit %1
40    %0:vgpr(s32) = COPY $vgpr0
41    %1:vgpr(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.fract), %0
42    S_ENDPGM 0, implicit %1
43...
44
45---
46name: fract_s64_vs
47legalized: true
48regBankSelected: true
49tracksRegLiveness: true
50
51body: |
52  bb.0:
53    liveins: $sgpr0_sgpr1
54
55    ; CHECK-LABEL: name: fract_s64_vs
56    ; CHECK: liveins: $sgpr0_sgpr1
57    ; CHECK: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
58    ; CHECK: %1:vreg_64 = nofpexcept V_FRACT_F64_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
59    ; CHECK: S_ENDPGM 0, implicit %1
60    %0:sgpr(s64) = COPY $sgpr0_sgpr1
61    %1:vgpr(s64) = G_INTRINSIC intrinsic(@llvm.amdgcn.fract), %0
62    S_ENDPGM 0, implicit %1
63...
64
65---
66name: fract_s64_vv
67legalized: true
68regBankSelected: true
69tracksRegLiveness: true
70
71body: |
72  bb.0:
73    liveins: $vgpr0_vgpr1
74
75    ; CHECK-LABEL: name: fract_s64_vv
76    ; CHECK: liveins: $vgpr0_vgpr1
77    ; CHECK: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
78    ; CHECK: %1:vreg_64 = nofpexcept V_FRACT_F64_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
79    ; CHECK: S_ENDPGM 0, implicit %1
80    %0:vgpr(s64) = COPY $vgpr0_vgpr1
81    %1:vgpr(s64) = G_INTRINSIC intrinsic(@llvm.amdgcn.fract), %0
82    S_ENDPGM 0, implicit %1
83...
84