Matthias Braun | e29b768 | 2016-05-20 23:02:13 +0000 | [diff] [blame^] | 1 | ; RUN: llc -verify-machineinstrs -o /dev/null %s |
| 2 | ; We may have subregister live ranges that are undefined on some paths. The |
| 3 | ; verifier should not complain about this. |
| 4 | target triple = "amdgcn--" |
| 5 | |
| 6 | define void @func() { |
| 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 %B30.1, label %B30.2 |
| 16 | |
| 17 | B30.1: |
| 18 | %sub = fsub <4 x float> %v0, undef |
| 19 | br label %B30.2 |
| 20 | |
| 21 | B30.2: |
| 22 | %v3 = phi <4 x float> [ %sub, %B30.1 ], [ %v0, %B2 ] |
| 23 | %ve0 = extractelement <4 x float> %v3, i32 0 |
| 24 | store float %ve0, float addrspace(3)* undef, align 4 |
| 25 | ret void |
| 26 | } |