[x86] add tests for sext (not bool); NFC

llvm-svn: 295495
This commit is contained in:
Sanjay Patel 2017-02-17 21:10:40 +00:00
parent 29ba8d9bfe
commit 00872c3dfe
1 changed files with 72 additions and 0 deletions

View File

@ -112,3 +112,75 @@ define i64 @t5(i32 %x) nounwind readnone ssp {
ret i64 %t1
}
; FIXME: sext (xor Bool, -1) --> sub (zext Bool), 1
define i32 @select_0_or_1s(i1 %cond) {
; X32-LABEL: select_0_or_1s:
; X32: # BB#0:
; X32-NEXT: movb {{[0-9]+}}(%esp), %al
; X32-NEXT: notb %al
; X32-NEXT: movzbl %al, %eax
; X32-NEXT: andl $1, %eax
; X32-NEXT: negl %eax
; X32-NEXT: retl
;
; X64-LABEL: select_0_or_1s:
; X64: # BB#0:
; X64-NEXT: notb %dil
; X64-NEXT: movzbl %dil, %eax
; X64-NEXT: andl $1, %eax
; X64-NEXT: negl %eax
; X64-NEXT: retq
%not = xor i1 %cond, 1
%sext = sext i1 %not to i32
ret i32 %sext
}
; FIXME: sext (xor Bool, -1) --> sub (zext Bool), 1
define i32 @select_0_or_1s_zeroext(i1 zeroext %cond) {
; X32-LABEL: select_0_or_1s_zeroext:
; X32: # BB#0:
; X32-NEXT: movb {{[0-9]+}}(%esp), %al
; X32-NEXT: notb %al
; X32-NEXT: movzbl %al, %eax
; X32-NEXT: andl $1, %eax
; X32-NEXT: negl %eax
; X32-NEXT: retl
;
; X64-LABEL: select_0_or_1s_zeroext:
; X64: # BB#0:
; X64-NEXT: notb %dil
; X64-NEXT: movzbl %dil, %eax
; X64-NEXT: andl $1, %eax
; X64-NEXT: negl %eax
; X64-NEXT: retq
%not = xor i1 %cond, 1
%sext = sext i1 %not to i32
ret i32 %sext
}
; FIXME: sext (xor Bool, -1) --> sub (zext Bool), 1
define i32 @select_0_or_1s_signext(i1 signext %cond) {
; X32-LABEL: select_0_or_1s_signext:
; X32: # BB#0:
; X32-NEXT: movb {{[0-9]+}}(%esp), %al
; X32-NEXT: notb %al
; X32-NEXT: movzbl %al, %eax
; X32-NEXT: andl $1, %eax
; X32-NEXT: negl %eax
; X32-NEXT: retl
;
; X64-LABEL: select_0_or_1s_signext:
; X64: # BB#0:
; X64-NEXT: notb %dil
; X64-NEXT: movzbl %dil, %eax
; X64-NEXT: andl $1, %eax
; X64-NEXT: negl %eax
; X64-NEXT: retq
%not = xor i1 %cond, 1
%sext = sext i1 %not to i32
ret i32 %sext
}