diff options
| author | Sanjay Patel <spatel@rotateright.com> | 2017-10-17 15:56:42 +0000 |
|---|---|---|
| committer | Sanjay Patel <spatel@rotateright.com> | 2017-10-17 15:56:42 +0000 |
| commit | 6d172f2d72ebc9e804618f4a65deb05d7de99317 (patch) | |
| tree | 84f1aa5130b181eae30bb180f7e2e4f98f946c6b /llvm/test | |
| parent | a5be48b3e0dd9c331ab50e4cbc7bf2b805ffba73 (diff) | |
| download | bcm5719-llvm-6d172f2d72ebc9e804618f4a65deb05d7de99317.tar.gz bcm5719-llvm-6d172f2d72ebc9e804618f4a65deb05d7de99317.zip | |
[SimplifyCFG] add test for part of PR34471 (switch squashing); NFC
llvm-svn: 316008
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/Transforms/SimplifyCFG/ForwardSwitchConditionToPHI.ll | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/llvm/test/Transforms/SimplifyCFG/ForwardSwitchConditionToPHI.ll b/llvm/test/Transforms/SimplifyCFG/ForwardSwitchConditionToPHI.ll index beb8d474426..3710cc95971 100644 --- a/llvm/test/Transforms/SimplifyCFG/ForwardSwitchConditionToPHI.ll +++ b/llvm/test/Transforms/SimplifyCFG/ForwardSwitchConditionToPHI.ll @@ -41,3 +41,46 @@ return: ; preds = %entry, %sw.bb4, %sw ret i32 %retval.0 } +; If 1 incoming phi value is a case constant of a switch, convert it to the switch condition: +; https://bugs.llvm.org/show_bug.cgi?id=34471 +; This then subsequently should allow squashing of the other trivial case blocks. + +define i32 @PR34471(i32 %x) { +; CHECK-LABEL: @PR34471( +; CHECK-NEXT: entry: +; CHECK-NEXT: switch i32 [[X:%.*]], label [[ELSE3:%.*]] [ +; CHECK-NEXT: i32 17, label [[RETURN:%.*]] +; CHECK-NEXT: i32 19, label [[IF19:%.*]] +; CHECK-NEXT: i32 42, label [[IF42:%.*]] +; CHECK-NEXT: ] +; CHECK: if19: +; CHECK-NEXT: br label [[RETURN]] +; CHECK: if42: +; CHECK-NEXT: br label [[RETURN]] +; CHECK: else3: +; CHECK-NEXT: br label [[RETURN]] +; CHECK: return: +; CHECK-NEXT: [[R:%.*]] = phi i32 [ [[X]], [[IF19]] ], [ [[X]], [[IF42]] ], [ 0, [[ELSE3]] ], [ 17, [[ENTRY:%.*]] ] +; CHECK-NEXT: ret i32 [[R]] +; +entry: + switch i32 %x, label %else3 [ + i32 17, label %return + i32 19, label %if19 + i32 42, label %if42 + ] + +if19: + br label %return + +if42: + br label %return + +else3: + br label %return + +return: + %r = phi i32 [ %x, %if19 ], [ %x, %if42 ], [ 0, %else3 ], [ 17, %entry ] + ret i32 %r +} + |

