blob: 2517ad9ebcb6bf909cc1b995ff021b8f1aff9e39 [file] [log] [blame] [edit]
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc < %s -mtriple=x86_64-- | FileCheck %s
@g_1 = external global i8
@g_2 = external global i8
; Make sure we don't crash on this test.
define i1 @test(i1 %cmp1, i32 %x) {
; CHECK-LABEL: test:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: movq g_2@GOTPCREL(%rip), %rcx
; CHECK-NEXT: xorl %eax, %eax
; CHECK-NEXT: cmpq %rcx, g_1@GOTPCREL(%rip)
; CHECK-NEXT: setne %al
; CHECK-NEXT: cmpl %eax, %esi
; CHECK-NEXT: setb %cl
; CHECK-NEXT: orb %cl, %al
; CHECK-NEXT: andb %dil, %al
; CHECK-NEXT: # kill: def $al killed $al killed $eax
; CHECK-NEXT: retq
entry:
%cmp2 = icmp ne ptr @g_1, @g_2
%fr = freeze ptr @g_1
%cmp3 = icmp ne ptr %fr, @g_2
%ext1 = zext i1 %cmp3 to i32
%sel1 = select i1 %cmp1, i1 %cmp2, i1 false
%cmp4 = icmp ult i32 %x, %ext1
%sel3 = select i1 %cmp1, i1 %cmp4, i1 false
%or = or i1 %sel1, %sel3
ret i1 %or
}