diff options
Diffstat (limited to 'llvm/test/Transforms/SimplifyCFG/ARM')
5 files changed, 0 insertions, 251 deletions
diff --git a/llvm/test/Transforms/SimplifyCFG/ARM/cttz-ctlz.ll b/llvm/test/Transforms/SimplifyCFG/ARM/cttz-ctlz.ll deleted file mode 100644 index ffcf2175091..00000000000 --- a/llvm/test/Transforms/SimplifyCFG/ARM/cttz-ctlz.ll +++ /dev/null @@ -1,43 +0,0 @@ -; RUN: opt -S -simplifycfg -mtriple=arm -mattr=+v6t2 < %s | FileCheck %s - -define i32 @ctlz(i32 %A) { -; CHECK-LABEL: @ctlz( -; CHECK: [[ICMP:%[A-Za-z0-9]+]] = icmp eq i32 %A, 0 -; CHECK-NEXT: [[CTZ:%[A-Za-z0-9]+]] = tail call i32 @llvm.ctlz.i32(i32 %A, i1 true) -; CHECK-NEXT: [[SEL:%[A-Za-z0-9.]+]] = select i1 [[ICMP]], i32 32, i32 [[CTZ]] -; CHECK-NEXT: ret i32 [[SEL]] -entry: - %tobool = icmp eq i32 %A, 0 - br i1 %tobool, label %cond.end, label %cond.true - -cond.true: - %0 = tail call i32 @llvm.ctlz.i32(i32 %A, i1 true) - br label %cond.end - -cond.end: - %cond = phi i32 [ %0, %cond.true ], [ 32, %entry ] - ret i32 %cond -} - -define i32 @cttz(i32 %A) { -; CHECK-LABEL: @cttz( -; CHECK: [[ICMP:%[A-Za-z0-9]+]] = icmp eq i32 %A, 0 -; CHECK-NEXT: [[CTZ:%[A-Za-z0-9]+]] = tail call i32 @llvm.cttz.i32(i32 %A, i1 true) -; CHECK-NEXT: [[SEL:%[A-Za-z0-9.]+]] = select i1 [[ICMP]], i32 32, i32 [[CTZ]] -; CHECK-NEXT: ret i32 [[SEL]] -entry: - %tobool = icmp eq i32 %A, 0 - br i1 %tobool, label %cond.end, label %cond.true - -cond.true: - %0 = tail call i32 @llvm.cttz.i32(i32 %A, i1 true) - br label %cond.end - -cond.end: - %cond = phi i32 [ %0, %cond.true ], [ 32, %entry ] - ret i32 %cond -} - -declare i32 @llvm.ctlz.i32(i32, i1) -declare i32 @llvm.cttz.i32(i32, i1) - diff --git a/llvm/test/Transforms/SimplifyCFG/ARM/lit.local.cfg b/llvm/test/Transforms/SimplifyCFG/ARM/lit.local.cfg deleted file mode 100644 index 5a3b8565213..00000000000 --- a/llvm/test/Transforms/SimplifyCFG/ARM/lit.local.cfg +++ /dev/null @@ -1,5 +0,0 @@ -config.suffixes = ['.ll'] - -targets = set(config.root.targets_to_build.split()) -if not 'ARM' in targets: - config.unsupported = True diff --git a/llvm/test/Transforms/SimplifyCFG/ARM/select-trunc-i64.ll b/llvm/test/Transforms/SimplifyCFG/ARM/select-trunc-i64.ll deleted file mode 100644 index 9484de77db4..00000000000 --- a/llvm/test/Transforms/SimplifyCFG/ARM/select-trunc-i64.ll +++ /dev/null @@ -1,25 +0,0 @@ -;RUN: opt -S -simplifycfg -mtriple=arm < %s | FileCheck %s -target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64" - -; CHECK-LABEL: select_trunc_i64 -; CHECK-NOT: br -; CHECK: select -; CHECK: select -define arm_aapcscc i32 @select_trunc_i64(i32 %a, i32 %b) { -entry: - %conv = sext i32 %a to i64 - %conv1 = sext i32 %b to i64 - %add = add nsw i64 %conv1, %conv - %cmp = icmp sgt i64 %add, 2147483647 - br i1 %cmp, label %cond.end7, label %cond.false - -cond.false: ; preds = %entry - %0 = icmp sgt i64 %add, -2147483648 - %cond = select i1 %0, i64 %add, i64 -2147483648 - %extract.t = trunc i64 %cond to i32 - br label %cond.end7 - -cond.end7: ; preds = %cond.false, %entry - %cond8.off0 = phi i32 [ 2147483647, %entry ], [ %extract.t, %cond.false ] - ret i32 %cond8.off0 -} diff --git a/llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table-constant-expr.ll b/llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table-constant-expr.ll deleted file mode 100644 index 453a7686403..00000000000 --- a/llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table-constant-expr.ll +++ /dev/null @@ -1,40 +0,0 @@ -; RUN: opt -S -simplifycfg < %s | FileCheck %s - -target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64" -target triple = "armv7a--none-eabi" - -; One of the phi node's values is too complex to be represented by a global -; variable, so we can't convert to a lookup table. - -; CHECK-NOT: @switch.table -; CHECK-NOT: load - -@g1 = external global i32, align 4 -@g2 = external global i32, align 4 -@g3 = external global i32, align 4 -@g4 = external thread_local global i32, align 4 - -define i32* @test3(i32 %n) { -entry: - switch i32 %n, label %sw.default [ - i32 0, label %sw.bb - i32 1, label %sw.bb1 - i32 2, label %sw.bb2 - ] - -sw.bb: - br label %return - -sw.bb1: - br label %return - -sw.bb2: - br label %return - -sw.default: - br label %return - -return: - %retval.0 = phi i32* [ @g4, %sw.default ], [ getelementptr inbounds (i32, i32* inttoptr (i32 mul (i32 ptrtoint (i32* @g3 to i32), i32 2) to i32*), i32 1), %sw.bb2 ], [ @g2, %sw.bb1 ], [ @g1, %sw.bb ] - ret i32* %retval.0 -} diff --git a/llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table.ll b/llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table.ll deleted file mode 100644 index 501bc31bd0d..00000000000 --- a/llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table.ll +++ /dev/null @@ -1,138 +0,0 @@ -; RUN: opt -S -simplifycfg -switch-to-lookup -mtriple=arm -relocation-model=static < %s | FileCheck %s --check-prefix=CHECK --check-prefix=ENABLE -; RUN: opt -S -simplifycfg -switch-to-lookup -mtriple=arm -relocation-model=pic < %s | FileCheck %s --check-prefix=CHECK --check-prefix=ENABLE -; RUN: opt -S -simplifycfg -switch-to-lookup -mtriple=arm -relocation-model=ropi < %s | FileCheck %s --check-prefix=CHECK --check-prefix=DISABLE -; RUN: opt -S -simplifycfg -switch-to-lookup -mtriple=arm -relocation-model=rwpi < %s | FileCheck %s --check-prefix=CHECK --check-prefix=DISABLE -; RUN: opt -S -simplifycfg -switch-to-lookup -mtriple=arm -relocation-model=ropi-rwpi < %s | FileCheck %s --check-prefix=CHECK --check-prefix=DISABLE - -; RUN: opt -S -passes='simplify-cfg<switch-to-lookup>' -mtriple=arm -relocation-model=static < %s | FileCheck %s --check-prefix=CHECK --check-prefix=ENABLE -; RUN: opt -S -passes='simplify-cfg<switch-to-lookup>' -mtriple=arm -relocation-model=pic < %s | FileCheck %s --check-prefix=CHECK --check-prefix=ENABLE -; RUN: opt -S -passes='simplify-cfg<switch-to-lookup>' -mtriple=arm -relocation-model=ropi < %s | FileCheck %s --check-prefix=CHECK --check-prefix=DISABLE -; RUN: opt -S -passes='simplify-cfg<switch-to-lookup>' -mtriple=arm -relocation-model=rwpi < %s | FileCheck %s --check-prefix=CHECK --check-prefix=DISABLE -; RUN: opt -S -passes='simplify-cfg<switch-to-lookup>' -mtriple=arm -relocation-model=ropi-rwpi < %s | FileCheck %s --check-prefix=CHECK --check-prefix=DISABLE - -; CHECK: @{{.*}} = private unnamed_addr constant [3 x i32] [i32 1234, i32 5678, i32 15532] -; ENABLE: @{{.*}} = private unnamed_addr constant [3 x i32*] [i32* @c1, i32* @c2, i32* @c3] -; DISABLE-NOT: @{{.*}} = private unnamed_addr constant [3 x i32*] [i32* @c1, i32* @c2, i32* @c3] -; ENABLE: @{{.*}} = private unnamed_addr constant [3 x i32*] [i32* @g1, i32* @g2, i32* @g3] -; DISABLE-NOT: @{{.*}} = private unnamed_addr constant [3 x i32*] [i32* @g1, i32* @g2, i32* @g3] -; ENABLE: @{{.*}} = private unnamed_addr constant [3 x i32 (i32, i32)*] [i32 (i32, i32)* @f1, i32 (i32, i32)* @f2, i32 (i32, i32)* @f3] -; DISABLE-NOT: @{{.*}} = private unnamed_addr constant [3 x i32 (i32, i32)*] [i32 (i32, i32)* @f1, i32 (i32, i32)* @f2, i32 (i32, i32)* @f3] - -target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64" -target triple = "armv7a--none-eabi" - -define i32 @test1(i32 %n) { -entry: - switch i32 %n, label %sw.default [ - i32 0, label %sw.bb - i32 1, label %sw.bb1 - i32 2, label %sw.bb2 - ] - -sw.bb: - br label %return - -sw.bb1: - br label %return - -sw.bb2: - br label %return - -sw.default: - br label %return - -return: - %retval.0 = phi i32 [ 15498, %sw.default ], [ 15532, %sw.bb2 ], [ 5678, %sw.bb1 ], [ 1234, %sw.bb ] - ret i32 %retval.0 -} - -@c1 = external constant i32, align 4 -@c2 = external constant i32, align 4 -@c3 = external constant i32, align 4 -@c4 = external constant i32, align 4 - - -define i32* @test2(i32 %n) { -entry: - switch i32 %n, label %sw.default [ - i32 0, label %sw.bb - i32 1, label %sw.bb1 - i32 2, label %sw.bb2 - ] - -sw.bb: - br label %return - -sw.bb1: - br label %return - -sw.bb2: - br label %return - -sw.default: - br label %return - -return: - %retval.0 = phi i32* [ @c4, %sw.default ], [ @c3, %sw.bb2 ], [ @c2, %sw.bb1 ], [ @c1, %sw.bb ] - ret i32* %retval.0 -} - -@g1 = external global i32, align 4 -@g2 = external global i32, align 4 -@g3 = external global i32, align 4 -@g4 = external global i32, align 4 - -define i32* @test3(i32 %n) { -entry: - switch i32 %n, label %sw.default [ - i32 0, label %sw.bb - i32 1, label %sw.bb1 - i32 2, label %sw.bb2 - ] - -sw.bb: - br label %return - -sw.bb1: - br label %return - -sw.bb2: - br label %return - -sw.default: - br label %return - -return: - %retval.0 = phi i32* [ @g4, %sw.default ], [ @g3, %sw.bb2 ], [ @g2, %sw.bb1 ], [ @g1, %sw.bb ] - ret i32* %retval.0 -} - -declare i32 @f1(i32, i32) -declare i32 @f2(i32, i32) -declare i32 @f3(i32, i32) -declare i32 @f4(i32, i32) -declare i32 @f5(i32, i32) - -define i32 @test4(i32 %a, i32 %b, i32 %c) { -entry: - %cmp = icmp eq i32 %a, 1 - br i1 %cmp, label %cond.end11, label %cond.false - -cond.false: - %cmp1 = icmp eq i32 %a, 2 - br i1 %cmp1, label %cond.end11, label %cond.false3 - -cond.false3: - %cmp4 = icmp eq i32 %a, 3 - br i1 %cmp4, label %cond.end11, label %cond.false6 - -cond.false6: - %cmp7 = icmp eq i32 %a, 4 - %cond = select i1 %cmp7, i32 (i32, i32)* @f4, i32 (i32, i32)* @f5 - br label %cond.end11 - -cond.end11: - %cond12 = phi i32 (i32, i32)* [ @f1, %entry ], [ @f2, %cond.false ], [ %cond, %cond.false6 ], [ @f3, %cond.false3 ] - %call = call i32 %cond12(i32 %b, i32 %c) #2 - ret i32 %call -} |