mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-24 20:29:53 +00:00
a2db716bbb
The benefits of this change include: 1. Remove DeMorgan-matching code that was added specifically to work-around the missing transform in http://reviews.llvm.org/rL248634. 2. Makes the DeMorgan transform work for vectors too. 3. Fix PR28476: https://llvm.org/bugs/show_bug.cgi?id=28476 Extending this transform to other casts and other associative operators may be useful too. See https://reviews.llvm.org/D22421 for a prerequisite for doing that though. Differential Revision: https://reviews.llvm.org/D22271 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276221 91177308-0d34-0410-b5e6-96231b3b80d8
16 lines
370 B
LLVM
16 lines
370 B
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
|
; RUN: opt < %s -instcombine -S | FileCheck %s
|
|
|
|
define i32 @test1(i8 %X) {
|
|
; CHECK-LABEL: @test1(
|
|
; CHECK-NEXT: [[TMP1:%.*]] = and i8 %X, 8
|
|
; CHECK-NEXT: [[Z:%.*]] = zext i8 [[TMP1]] to i32
|
|
; CHECK-NEXT: ret i32 [[Z]]
|
|
;
|
|
%Y = zext i8 %X to i32
|
|
%Z = and i32 %Y, 65544
|
|
ret i32 %Z
|
|
}
|
|
|
|
|