annotate test/CodeGen/AMDGPU/movrels-bug.mir @ 128:c347d3398279 default tip

fix
author mir3636
date Wed, 06 Dec 2017 14:37:17 +0900
parents 803732b1fca8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
121
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
1 # RUN: llc -march=amdgcn -verify-machineinstrs -run-pass post-RA-sched %s -o - | FileCheck %s
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
3 # This tests a situation where a sub-register of a killed super-register operand
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
4 # of V_MOVRELS happens to have an undef use later on. This leads to the post RA
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
5 # scheduler adding additional implicit operands to the V_MOVRELS, which used
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
6 # to fail machine instruction verification.
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
7
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
8 --- |
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
9
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
10 define amdgpu_vs void @main(i32 %arg) { ret void }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
11
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
12 ...
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
13 ---
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
14 # CHECK-LABEL: name: main
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
15 # CHECK-LABEL: bb.0:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
16 # CHECK: V_MOVRELS_B32_e32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
17 # CHECK: V_MAC_F32_e32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
18
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
19 name: main
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
20 tracksRegLiveness: true
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
21 body: |
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
22 bb.0:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
23 %m0 = S_MOV_B32 undef %sgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
24 V_MOVRELD_B32_e32 undef %vgpr2, 0, implicit %m0, implicit %exec, implicit-def %vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8, implicit undef %vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8(tied-def 4)
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
25 %m0 = S_MOV_B32 undef %sgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
26 %vgpr1 = V_MOVRELS_B32_e32 undef %vgpr1, implicit %m0, implicit %exec, implicit killed %vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
27 %vgpr4 = V_MAC_F32_e32 undef %vgpr0, undef %vgpr0, undef %vgpr4, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
28 EXP_DONE 15, undef %vgpr0, killed %vgpr1, killed %vgpr4, undef %vgpr0, 0, 0, 12, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
29 S_ENDPGM
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
30
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
31 ...