diff options
| author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-04-20 14:33:23 +0000 |
|---|---|---|
| committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-04-20 14:33:23 +0000 |
| commit | 16331f0aa02a5787d058774237a918d5d7b21680 (patch) | |
| tree | 0bce27ca41d4a6f925c6717e1639c1704c32d96f /llvm/test | |
| parent | f2c717be82ab8f96d1119022858c7948b3612d26 (diff) | |
| download | bcm5719-llvm-16331f0aa02a5787d058774237a918d5d7b21680.tar.gz bcm5719-llvm-16331f0aa02a5787d058774237a918d5d7b21680.zip | |
[RDF] Consider register as live if any alias is live
This only affects the recomputation of kill flags.
llvm-svn: 266875
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/Hexagon/rdf-reset-kills.ll | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/Hexagon/rdf-reset-kills.ll b/llvm/test/CodeGen/Hexagon/rdf-reset-kills.ll new file mode 100644 index 00000000000..37db8c5f64e --- /dev/null +++ b/llvm/test/CodeGen/Hexagon/rdf-reset-kills.ll @@ -0,0 +1,28 @@ +; RUN: llc -march=hexagon < %s +; REQUIRES: asserts + +; This test used to crash in register scavenger due to incorrectly set +; kill flags. + +target triple = "hexagon" + +define void @foo(i64 %a) #0 { +entry: + %conv.i = and i64 %a, 9218868437227405312 + %cmp = icmp ne i64 %conv.i, 9218868437227405312 + %and.i37 = and i64 %a, 4503599627370495 + %tobool = icmp eq i64 %and.i37, 0 + %or.cond = or i1 %cmp, %tobool + br i1 %or.cond, label %lor.lhs.false, label %if.then + +lor.lhs.false: ; preds = %entry + br i1 undef, label %return, label %if.then + +if.then: ; preds = %lor.lhs.false, %entry + br label %return + +return: ; preds = %if.then, %lor.lhs.false + ret void +} + +attributes #0 = { norecurse nounwind } |

