diff options
author | Jyotsna Verma <jverma@codeaurora.org> | 2013-05-14 16:36:34 +0000 |
---|---|---|
committer | Jyotsna Verma <jverma@codeaurora.org> | 2013-05-14 16:36:34 +0000 |
commit | 91eadc6d697647f426d05cab66aae2a19112343e (patch) | |
tree | 5547f8b3d6a86bd5a3da1dc64dda2e4ed6e9df8a /test/CodeGen/Hexagon | |
parent | e4642bc096984c12c1ef129137e17fad61201118 (diff) | |
download | external_llvm-91eadc6d697647f426d05cab66aae2a19112343e.zip external_llvm-91eadc6d697647f426d05cab66aae2a19112343e.tar.gz external_llvm-91eadc6d697647f426d05cab66aae2a19112343e.tar.bz2 |
Hexagon: ArePredicatesComplement should not restrict itself to TFRs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181803 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/Hexagon')
-rw-r--r-- | test/CodeGen/Hexagon/packetize_cond_inst.ll | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/CodeGen/Hexagon/packetize_cond_inst.ll b/test/CodeGen/Hexagon/packetize_cond_inst.ll new file mode 100644 index 0000000..a48a9f6 --- /dev/null +++ b/test/CodeGen/Hexagon/packetize_cond_inst.ll @@ -0,0 +1,32 @@ +; RUN: llc -mcpu=hexagonv4 -tail-dup-size=1 < %s | FileCheck %s + +target datalayout = "e-p:32:32:32-i64:64:64-i32:32:32-i16:16:16-i1:32:32-f64:64:64-f32:32:32-v64:64:64-v32:32:32-a0:0-n16:32" +target triple = "hexagon-unknown--elf" + +; Make sure we put the two conditionally executed adds in a packet. +; ifcnv_add: +; { +; p0 = cmp.gt(r2, r1) +; if (!p0.new) r0 = add(r2, r1) +; if (p0.new) r0 = add(r0, #10) +; } +; CHECK: cmp +; CHECK-NEXT: add +; CHECH-NEXT: add +define i32 @ifcnv_add(i32, i32, i32) nounwind readnone { + %4 = icmp sgt i32 %2, %1 + br i1 %4, label %5, label %7 + +; <label>:5 ; preds = %3 + %6 = add nsw i32 %0, 10 + br label %9 + +; <label>:7 ; preds = %3 + %8 = add nsw i32 %2, %1 + br label %9 + +; <label>:9 ; preds = %7, %5 + %10 = phi i32 [ %6, %5 ], [ %8, %7 ] + %11 = add nsw i32 %10, 1 + ret i32 %11 +} |