llvm-project/llvm/test/CodeGen/X86/2008-06-16-SubregsBug.ll

30 lines
961 B
LLVM

; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=i386-apple-darwin | FileCheck %s
define i16 @test(i16* %tmp179) nounwind {
; CHECK-LABEL: test:
; CHECK: ## %bb.0:
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax
; CHECK-NEXT: movzwl (%eax), %eax
; CHECK-NEXT: movl %eax, %ecx
; CHECK-NEXT: andl $64512, %ecx ## imm = 0xFC00
; CHECK-NEXT: cmpl $32768, %ecx ## imm = 0x8000
; CHECK-NEXT: jne LBB0_2
; CHECK-NEXT: ## %bb.1: ## %bb189
; CHECK-NEXT: ## kill: def $ax killed $ax killed $eax
; CHECK-NEXT: retl
; CHECK-NEXT: LBB0_2: ## %bb288
; CHECK-NEXT: movw $32, %ax
; CHECK-NEXT: retl
%tmp180 = load i16, i16* %tmp179, align 2 ; <i16> [#uses=2]
%tmp184 = and i16 %tmp180, -1024 ; <i16> [#uses=1]
%tmp186 = icmp eq i16 %tmp184, -32768 ; <i1> [#uses=1]
br i1 %tmp186, label %bb189, label %bb288
bb189: ; preds = %0
ret i16 %tmp180
bb288: ; preds = %0
ret i16 32
}