Revert the change to use APInt::isSignedIntN from 5ff5cf8e057782e3e648ecf5ccf1d9990b53ee90. Its clear that the games we were playing to avoid the topological sort aren't working. So just fix it once and for all. Fixes PR48888.
37 lines
1.0 KiB
LLVM
37 lines
1.0 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
|
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu | FileCheck %s
|
|
|
|
define void @test(i64* %p) nounwind {
|
|
; CHECK-LABEL: test:
|
|
; CHECK: # %bb.0: # %bb
|
|
; CHECK-NEXT: movq (%rdi), %rax
|
|
; CHECK-NEXT: andl $-2, %eax
|
|
; CHECK-NEXT: cmpq $2, %rax
|
|
; CHECK-NEXT: cmpl $2, %eax
|
|
; CHECK-NEXT: retq
|
|
bb:
|
|
%i = load i64, i64* %p, align 8, !range !0
|
|
%i1 = and i64 %i, 6
|
|
%i2 = icmp eq i64 %i1, 2
|
|
br i1 %i2, label %bb3, label %bb5
|
|
|
|
bb3: ; preds = %bb
|
|
%i4 = icmp ne {}* undef, null
|
|
br label %bb5
|
|
|
|
bb5: ; preds = %bb3, %bb
|
|
br label %bb6
|
|
|
|
bb6: ; preds = %bb5
|
|
br i1 %i2, label %bb7, label %bb9
|
|
|
|
bb7: ; preds = %bb6
|
|
%i8 = getelementptr inbounds i64, i64* undef, i64 5
|
|
br label %bb9
|
|
|
|
bb9: ; preds = %bb7, %bb6
|
|
ret void
|
|
}
|
|
|
|
!0 = !{i64 0, i64 5}
|