[Hexagon] [Test] Remove undef and infinite loop from test

Summary:
The undef and the infinite loop at the end cause this test to be translated
unpredictably. In particular, the checked-for `mpy` disappears under
certain legal optimizations (e.g. the one in D50222).
Since the use of these constructs is not relevant to the behavior tested,
according to the header comment, this change, suggested by @kparzysz,
eliminates them.

Was initially committed in r341046, but was reverted.

Patch by: hermord (Dmytro Shynkevych)!

Reviewers: kparzysz

Reviewed By: kparzysz

Subscribers: lebedev.ri, llvm-commits, kparzysz

Differential Revision: https://reviews.llvm.org/D50944

llvm-svn: 341943
This commit is contained in:
Roman Lebedev 2018-09-11 14:06:14 +00:00
parent 69bc252c61
commit e8d7297324

View File

@ -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: r{{[0-9]+}} = mpyi
; CHECK-NOT: r{{[0-9]+}} = mpyi
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 @@ b2: ; preds = %b1
br label %b3
b3: ; preds = %b3, %b2
br label %b3
ret i32 %v11
}