; 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 }