[PATCH] D50944: [Hexagon] [Test] Remove undef and infinite loop from test
Dmytro Shynkevych via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 30 18:49:07 PDT 2018
hermord updated this revision to Diff 163458.
hermord added a comment.
After a rebase and bisect, it turned out that the current form does rely on https://reviews.llvm.org/D50222. The extra `mpy` nodes come from this combine on the `srem`, which would not be reached with the proposed SREM optimization:
Combining: t11: i32 = srem t5, Constant:i32<3>
Creating constant: t36: i32 = Constant<1431655766>
Creating new node: t37: i32 = mulhs t5, Constant:i32<1431655766>
Creating new node: t38: i32 = mul t5, Constant:i32<0>
Creating new node: t39: i32 = add t37, t38
Creating constant: t40: i32 = Constant<31>
Creating new node: t41: i32 = srl t39, Constant:i32<31>
Creating new node: t42: i32 = add t39, t41
Creating new node: t43: i32 = mul t42, Constant:i32<3>
Creating new node: t44: i32 = sub t5, t43
... into: t44: i32 = sub t5, t43
This change fixes that: though there may be multiple `mpy`s in the loop body, there is only one `cmp`; looking at it instead still fullfils the purpose of the test (ensuring the loop body is not duplicated), unless I'm mistaken.
Repository:
rL LLVM
https://reviews.llvm.org/D50944
Files:
test/CodeGen/Hexagon/swp-const-tc2.ll
Index: test/CodeGen/Hexagon/swp-const-tc2.ll
===================================================================
--- test/CodeGen/Hexagon/swp-const-tc2.ll
+++ test/CodeGen/Hexagon/swp-const-tc2.ll
@@ -6,17 +6,17 @@
; In the bug, the final CFG contains two iterations of the loop.
; CHECK-NOT: loop0
-; CHECK: = mpy
-; CHECK-NOT: = mpy
+; CHECK: = cmp
+; CHECK-NOT: = cmp
-define void @f0() {
+define i32 @f0(i32* %a0) {
b0:
br label %b1
b1: ; preds = %b1, %b0
%v0 = phi i32 [ 0, %b0 ], [ %v9, %b1 ]
%v1 = phi i32 [ 0, %b0 ], [ %v8, %b1 ]
- %v2 = load i32, i32* undef, align 4
+ %v2 = load i32, i32* %a0, align 4
%v3 = add nsw i32 %v1, 1
%v4 = srem i32 %v2, 3
%v5 = icmp ne i32 %v4, 0
@@ -32,5 +32,5 @@
br label %b3
b3: ; preds = %b3, %b2
- br label %b3
+ ret i32 %v11
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D50944.163458.patch
Type: text/x-patch
Size: 901 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180831/9793e8b0/attachment.bin>
More information about the llvm-commits
mailing list