; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=i686-- | FileCheck %s ; These tests differ from the ones in zext-inreg-0.ll in that ; on x86-64 they do require and instructions. ; These should use movzbl instead of 'and 255'. ; This related to not having ZERO_EXTEND_REG node. define i64 @l(i64 %d) nounwind { ; CHECK-LABEL: l: ; CHECK: # %bb.0: ; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax ; CHECK-NEXT: movl {{[0-9]+}}(%esp), %ecx ; CHECK-NEXT: addl $1, %eax ; CHECK-NEXT: adcl $0, %ecx ; CHECK-NEXT: movzbl %cl, %edx ; CHECK-NEXT: retl %e = add i64 %d, 1 %retval = and i64 %e, 1099511627775 ret i64 %retval } define i64 @m(i64 %d) nounwind { ; CHECK-LABEL: m: ; CHECK: # %bb.0: ; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax ; CHECK-NEXT: movl {{[0-9]+}}(%esp), %ecx ; CHECK-NEXT: addl $1, %eax ; CHECK-NEXT: adcl $0, %ecx ; CHECK-NEXT: movzwl %cx, %edx ; CHECK-NEXT: retl %e = add i64 %d, 1 %retval = and i64 %e, 281474976710655 ret i64 %retval }