Andrew V. Tischenko | 4e7bcd5 | 2017-04-14 09:17:09 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s |
| 2 | |
Dinar Temirbulatov | aa2b7a6 | 2017-05-15 13:14:04 +0000 | [diff] [blame^] | 3 | |
Andrew V. Tischenko | 4e7bcd5 | 2017-04-14 09:17:09 +0000 | [diff] [blame] | 4 | define i32 @foo(i64* nocapture %perm, i32 %n) { |
| 5 | entry: |
| 6 | br label %body |
| 7 | |
| 8 | body: |
| 9 | ; CHECK-LABEL: foo: |
| 10 | ; CHECK: pslldq $8, %xmm0 |
| 11 | %vec.ind = phi <2 x i64> [ <i64 0, i64 1>, %entry ], [ <i64 2, i64 3>, %body ] |
| 12 | %l13 = extractelement <2 x i64> %vec.ind, i32 %n |
| 13 | %l14 = getelementptr inbounds i64, i64* %perm, i64 %l13 |
| 14 | %l15 = bitcast i64* %l14 to <2 x i64>* |
| 15 | store <2 x i64> %vec.ind, <2 x i64>* %l15, align 8 |
| 16 | %niter.ncmp.3 = icmp eq i64 %l13, 0 |
| 17 | br i1 %niter.ncmp.3, label %exit, label %body |
| 18 | |
| 19 | exit: |
| 20 | ret i32 %n |
| 21 | |
| 22 | } |
| 23 | |