88 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -fast-isel -mtriple=i686-unknown-unknown -O0 -mcpu=skx | FileCheck %s3 4define i32 @_Z3foov() {5; CHECK-LABEL: _Z3foov:6; CHECK: # %bb.0: # %entry7; CHECK-NEXT: subl $16, %esp8; CHECK-NEXT: .cfi_def_cfa_offset 209; CHECK-NEXT: movw $10959, {{[0-9]+}}(%esp) # imm = 0x2ACF10; CHECK-NEXT: movw $-15498, {{[0-9]+}}(%esp) # imm = 0xC37611; CHECK-NEXT: movw $19417, {{[0-9]+}}(%esp) # imm = 0x4BD912; CHECK-NEXT: movzwl {{[0-9]+}}(%esp), %eax13; CHECK-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill14; CHECK-NEXT: movb $1, %al15; CHECK-NEXT: cmpw $0, {{[0-9]+}}(%esp)16; CHECK-NEXT: movb %al, {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Spill17; CHECK-NEXT: jne .LBB0_218; CHECK-NEXT: # %bb.1: # %lor.rhs19; CHECK-NEXT: xorl %eax, %eax20; CHECK-NEXT: # kill: def $al killed $al killed $eax21; CHECK-NEXT: movb %al, {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Spill22; CHECK-NEXT: jmp .LBB0_223; CHECK-NEXT: .LBB0_2: # %lor.end24; CHECK-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload25; CHECK-NEXT: movb {{[-0-9]+}}(%e{{[sb]}}p), %cl # 1-byte Reload26; CHECK-NEXT: andb $1, %cl27; CHECK-NEXT: movzbl %cl, %ecx28; CHECK-NEXT: cmpl %ecx, %eax29; CHECK-NEXT: setl %al30; CHECK-NEXT: andb $1, %al31; CHECK-NEXT: movzbl %al, %ecx32; CHECK-NEXT: xorl $-1, %ecx33; CHECK-NEXT: movb $1, %al34; CHECK-NEXT: cmpl $0, %ecx35; CHECK-NEXT: movb %al, {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Spill36; CHECK-NEXT: jne .LBB0_437; CHECK-NEXT: # %bb.3: # %lor.rhs438; CHECK-NEXT: xorl %eax, %eax39; CHECK-NEXT: # kill: def $al killed $al killed $eax40; CHECK-NEXT: movb %al, {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Spill41; CHECK-NEXT: jmp .LBB0_442; CHECK-NEXT: .LBB0_4: # %lor.end543; CHECK-NEXT: movb {{[-0-9]+}}(%e{{[sb]}}p), %al # 1-byte Reload44; CHECK-NEXT: andb $1, %al45; CHECK-NEXT: movzbl %al, %eax46; CHECK-NEXT: # kill: def $ax killed $ax killed $eax47; CHECK-NEXT: movw %ax, {{[0-9]+}}(%esp)48; CHECK-NEXT: movzwl {{[0-9]+}}(%esp), %eax49; CHECK-NEXT: addl $16, %esp50; CHECK-NEXT: .cfi_def_cfa_offset 451; CHECK-NEXT: retl52entry:53 %aa = alloca i16, align 254 %bb = alloca i16, align 255 %cc = alloca i16, align 256 store i16 10959, ptr %aa, align 257 store i16 -15498, ptr %bb, align 258 store i16 19417, ptr %cc, align 259 %0 = load i16, ptr %aa, align 260 %conv = zext i16 %0 to i3261 %1 = load i16, ptr %cc, align 262 %tobool = icmp ne i16 %1, 063 br i1 %tobool, label %lor.end, label %lor.rhs64 65lor.rhs: ; preds = %entry66 br label %lor.end67 68lor.end: ; preds = %lor.rhs, %entry69 %2 = phi i1 [ true, %entry ], [ false, %lor.rhs ]70 %conv1 = zext i1 %2 to i3271 %cmp = icmp slt i32 %conv, %conv172 %conv2 = zext i1 %cmp to i3273 %neg = xor i32 %conv2, -174 %tobool3 = icmp ne i32 %neg, 075 br i1 %tobool3, label %lor.end5, label %lor.rhs476 77lor.rhs4: ; preds = %lor.end78 br label %lor.end579 80lor.end5: ; preds = %lor.rhs4, %lor.end81 %3 = phi i1 [ true, %lor.end ], [ false, %lor.rhs4 ]82 %conv6 = zext i1 %3 to i1683 store i16 %conv6, ptr %bb, align 284 %4 = load i16, ptr %bb, align 285 %conv7 = zext i16 %4 to i3286 ret i32 %conv787}88