; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6 ; RUN: llc < %s -mtriple=i686-- | FileCheck %s --check-prefixes=X86 ; RUN: llc < %s -mtriple=x86_64-- | FileCheck %s --check-prefixes=X64 define i32 @PR165755(ptr %p0) { ; X86-LABEL: PR165755: ; X86: # %bb.0: ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx ; X86-NEXT: movl (%ecx), %eax ; X86-NEXT: movb $0, (%ecx) ; X86-NEXT: retl ; ; X64-LABEL: PR165755: ; X64: # %bb.0: ; X64-NEXT: movl (%rdi), %eax ; X64-NEXT: movb $0, (%rdi) ; X64-NEXT: retq %ld64 = load i64, ptr %p0, align 8 store i8 0, ptr %p0, align 1 %ld32 = load i32, ptr %p0, align 8 %mask = and i32 %ld32, 32 %zext = zext i32 %mask to i64 %srl = lshr i64 %ld64, %zext %res = trunc i64 %srl to i32 ret i32 %res }