Skip to content

Commit bb5d2a3

Browse files
committed
[SelectionDAG] Pre-commit tests (NFC)
1 parent 6cc8d54 commit bb5d2a3

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

llvm/test/CodeGen/X86/dagcombine-shifts.ll

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,5 +322,49 @@ define void @g(i32 %a) nounwind {
322322
ret void
323323
}
324324

325+
define i32 @shift_zext_shl(i8 zeroext %x) {
326+
; X86-LABEL: shift_zext_shl:
327+
; X86: # %bb.0:
328+
; X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
329+
; X86-NEXT: andb $64, %al
330+
; X86-NEXT: movzbl %al, %eax
331+
; X86-NEXT: shll $9, %eax
332+
; X86-NEXT: movzwl %ax, %eax
333+
; X86-NEXT: retl
334+
;
335+
; X64-LABEL: shift_zext_shl:
336+
; X64: # %bb.0:
337+
; X64-NEXT: andb $64, %dil
338+
; X64-NEXT: movzbl %dil, %eax
339+
; X64-NEXT: shll $9, %eax
340+
; X64-NEXT: movzwl %ax, %eax
341+
; X64-NEXT: retq
342+
%a = and i8 %x, 64
343+
%b = zext i8 %a to i16
344+
%c = shl i16 %b, 9
345+
%d = zext i16 %c to i32
346+
ret i32 %d
347+
}
348+
349+
define i32 @shift_zext_shl2(i8 zeroext %x) {
350+
; X86-LABEL: shift_zext_shl2:
351+
; X86: # %bb.0:
352+
; X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
353+
; X86-NEXT: andl $64, %eax
354+
; X86-NEXT: shll $9, %eax
355+
; X86-NEXT: retl
356+
;
357+
; X64-LABEL: shift_zext_shl2:
358+
; X64: # %bb.0:
359+
; X64-NEXT: movl %edi, %eax
360+
; X64-NEXT: andl $64, %eax
361+
; X64-NEXT: shll $9, %eax
362+
; X64-NEXT: retq
363+
%a = and i8 %x, 64
364+
%b = zext i8 %a to i32
365+
%c = shl i32 %b, 9
366+
ret i32 %c
367+
}
368+
325369
declare dso_local void @f(i64)
326370

0 commit comments

Comments
 (0)