Matthias Braun | 858d1df | 2016-05-20 19:46:13 +0000 | [diff] [blame] | 1 | ; RUN: llc -verify-machineinstrs -o /dev/null %s |
| 2 | ; Check that renameDisconnectedComponents() does not create vregs without a |
| 3 | ; definition on every path (there should at least be IMPLICIT_DEF instructions). |
| 4 | target triple = "amdgcn--" |
| 5 | |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 6 | define amdgpu_kernel void @func() { |
Matthias Braun | 858d1df | 2016-05-20 19:46:13 +0000 | [diff] [blame] | 7 | B0: |
| 8 | br i1 undef, label %B1, label %B2 |
| 9 | |
| 10 | B1: |
| 11 | br label %B2 |
| 12 | |
| 13 | B2: |
| 14 | %v0 = phi <4 x float> [ zeroinitializer, %B1 ], [ <float 0.0, float 0.0, float 0.0, float undef>, %B0 ] |
| 15 | br i1 undef, label %B20.1, label %B20.2 |
| 16 | |
| 17 | B20.1: |
| 18 | br label %B20.2 |
| 19 | |
| 20 | B20.2: |
| 21 | %v2 = phi <4 x float> [ zeroinitializer, %B20.1 ], [ %v0, %B2 ] |
| 22 | br i1 undef, label %B30.1, label %B30.2 |
| 23 | |
| 24 | B30.1: |
| 25 | %sub = fsub <4 x float> %v2, undef |
| 26 | br label %B30.2 |
| 27 | |
| 28 | B30.2: |
| 29 | %v3 = phi <4 x float> [ %sub, %B30.1 ], [ %v2, %B20.2 ] |
| 30 | %ve0 = extractelement <4 x float> %v3, i32 0 |
| 31 | store float %ve0, float addrspace(3)* undef, align 4 |
| 32 | ret void |
| 33 | } |