--- /dev/null
+; RUN: llc -O0 %s -o - | FileCheck %s
+; CHECK: patatino:
+; CHECK: .cfi_startproc
+; CHECK: movzwl (%rax), %ecx
+; CHECK: movl %ecx, %eax
+; CHECK: movq %rax, (%rdx)
+; CHECK: retq
+
+define void @patatino() {
+ %tmp = load i16, i16* undef, align 8
+ %conv18098 = sext i16 %tmp to i64
+ %and1 = and i64 %conv18098, -1
+ %cmp = icmp ult i64 -1, undef
+ %conv = sext i1 %cmp to i64
+ %load1 = load i48, i48* undef, align 8
+ %bf.cast18158 = sext i48 %load1 to i64
+ %conv18159 = trunc i64 %bf.cast18158 to i32
+ %conv18160 = sext i32 %conv18159 to i64
+ %div18162 = udiv i64 %conv, %conv18160
+ %and18163 = and i64 %conv18098, %div18162
+ %shr18164 = lshr i64 %and1, %and18163
+ %conv18165 = trunc i64 %shr18164 to i16
+ %conv18166 = zext i16 %conv18165 to i64
+ store i64 %conv18166, i64* undef, align 8
+ store i48 undef, i48* undef, align 8
+ ret void
+}
+++ /dev/null
- .text
- .file "/home/davide/work/llvm/test/CodeGen/X86/visitand-shift.ll"
- .globl patatino
- .p2align 4, 0x90
- .type patatino,@function
-patatino: # @patatino
- .cfi_startproc
-# BB#0:
- # implicit-def: %RAX
- movzwl (%rax), %ecx
- movl %ecx, %eax
- # implicit-def: %RDX
- movq %rax, (%rdx)
- retq
-.Lfunc_end0:
- .size patatino, .Lfunc_end0-patatino
- .cfi_endproc
-
-
- .section ".note.GNU-stack","",@progbits