diff options
| author | Davide Italiano <davide@freebsd.org> | 2017-09-01 19:54:08 +0000 |
|---|---|---|
| committer | Davide Italiano <davide@freebsd.org> | 2017-09-01 19:54:08 +0000 |
| commit | c36039f462a8270a69b64309810f537e4991bb1c (patch) | |
| tree | a48c0440847af7b7821248443c4dbc30263eda25 /llvm/test | |
| parent | 07490f8415e1570be554b5858bf16469a77153cb (diff) | |
| download | bcm5719-llvm-c36039f462a8270a69b64309810f537e4991bb1c.tar.gz bcm5719-llvm-c36039f462a8270a69b64309810f537e4991bb1c.zip | |
[TTI] Fix getGEPCost() for geps with a single operand.
Previously this would sporadically crash as TargetType
was never initialized. We special-case the single-operand
case returning earlier and trying to mimic the behaviour of
isLegalAddressingMode as closely as possible.
Differential Revision: https://reviews.llvm.org/D37277
llvm-svn: 312357
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/Transforms/SimplifyCFG/gepcost.ll | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/llvm/test/Transforms/SimplifyCFG/gepcost.ll b/llvm/test/Transforms/SimplifyCFG/gepcost.ll new file mode 100644 index 00000000000..10751f747e3 --- /dev/null +++ b/llvm/test/Transforms/SimplifyCFG/gepcost.ll @@ -0,0 +1,28 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; RUN: opt < %s -S -simplifycfg | FileCheck %s + +target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "thumbv7m-none--eabi" + +@glob = external unnamed_addr constant [16 x i8] + +define void @f() { +; CHECK-LABEL: @f( +; CHECK-NEXT: entr: +; CHECK-NEXT: br i1 undef, label [[NEXT:%.*]], label [[EXIT:%.*]] +; CHECK: next: +; CHECK-NEXT: [[PAT:%.*]] = getelementptr [16 x i8], [16 x i8]* @glob +; CHECK-NEXT: br label [[EXIT]] +; CHECK: exit: +; CHECK-NEXT: ret void +; +entr: + br i1 undef, label %next, label %exit + +next: + %pat = getelementptr [16 x i8], [16 x i8]* @glob + br label %exit + +exit: + ret void +} |

