mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
8755396e8d
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 llvm-svn: 276221
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
|
|
}
|
|
|
|
|