llvm/test/CodeGen/X86/bit-test-shift.ll
Owen Anderson ed1088afb5 A select between a constant and zero, when fed by a bit test, can be efficiently
lowered using a series of shifts.
Fixes <rdar://problem/8285015>.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114599 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-22 22:58:22 +00:00

14 lines
323 B
LLVM

; RUN: llc < %s -march=x86 | FileCheck %s
; <rdar://problem/8285015>
define i32 @x(i32 %t) nounwind readnone ssp {
entry:
; CHECK: shll $23, %eax
; CHECK: sarl $31, %eax
; CHECK: andl $-26, %eax
%and = and i32 %t, 256
%tobool = icmp eq i32 %and, 0
%retval.0 = select i1 %tobool, i32 0, i32 -26
ret i32 %retval.0
}