1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc < %s -mtriple=i686-- -mcpu=generic | FileCheck %s 3; PR1872 4 5 %struct.c34007g__designated___XUB = type { i32, i32, i32, i32 } 6 %struct.c34007g__pkg__parent = type { i32*, %struct.c34007g__designated___XUB* } 7 8define void @_ada_c34007g() { 9; CHECK-LABEL: _ada_c34007g: 10; CHECK: # %bb.0: # %entry 11; CHECK-NEXT: pushl %ebp 12; CHECK-NEXT: .cfi_def_cfa_offset 8 13; CHECK-NEXT: .cfi_offset %ebp, -8 14; CHECK-NEXT: movl %esp, %ebp 15; CHECK-NEXT: .cfi_def_cfa_register %ebp 16; CHECK-NEXT: andl $-8, %esp 17; CHECK-NEXT: subl $8, %esp 18; CHECK-NEXT: movl (%esp), %eax 19; CHECK-NEXT: testl %eax, %eax 20; CHECK-NEXT: je .LBB0_3 21; CHECK-NEXT: # %bb.1: # %entry 22; CHECK-NEXT: orl {{[0-9]+}}(%esp), %eax 23; CHECK-NEXT: jne .LBB0_3 24; CHECK-NEXT: # %bb.2: # %entry 25; CHECK-NEXT: movb $1, %al 26; CHECK-NEXT: testb %al, %al 27; CHECK-NEXT: .LBB0_3: # %bb5507 28; CHECK-NEXT: movl %ebp, %esp 29; CHECK-NEXT: popl %ebp 30; CHECK-NEXT: .cfi_def_cfa %esp, 4 31; CHECK-NEXT: retl 32entry: 33 %x8 = alloca %struct.c34007g__pkg__parent, align 8 ; <%struct.c34007g__pkg__parent*> [#uses=2] 34 %tmp1272 = getelementptr %struct.c34007g__pkg__parent, %struct.c34007g__pkg__parent* %x8, i32 0, i32 0 ; <i32**> [#uses=1] 35 %x82167 = bitcast %struct.c34007g__pkg__parent* %x8 to i64* ; <i64*> [#uses=1] 36 br i1 true, label %bb4668, label %bb848 37 38bb4668: ; preds = %bb4648 39 %tmp5464 = load i64, i64* %x82167, align 8 ; <i64> [#uses=1] 40 %tmp5467 = icmp ne i64 0, %tmp5464 ; <i1> [#uses=1] 41 %tmp5470 = load i32*, i32** %tmp1272, align 8 ; <i32*> [#uses=1] 42 %tmp5471 = icmp eq i32* %tmp5470, null ; <i1> [#uses=1] 43 %tmp5475 = or i1 %tmp5471, %tmp5467 ; <i1> [#uses=1] 44 %tmp5497 = or i1 %tmp5475, false ; <i1> [#uses=1] 45 br i1 %tmp5497, label %bb848, label %bb5507 46 47bb848: ; preds = %entry 48 ret void 49 50bb5507: ; preds = %bb4668 51 ret void 52} 53