Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
test/CodeGen/X86/lea-opt-cse3.ll
Show First 20 Lines • Show All 87 Lines • ▼ Show 20 Lines | |||||
; X86-NEXT: cmpl $10, %ecx | ; X86-NEXT: cmpl $10, %ecx | ||||
; X86-NEXT: je .LBB2_2 | ; X86-NEXT: je .LBB2_2 | ||||
; X86-NEXT: # BB#1: # %mid | ; X86-NEXT: # BB#1: # %mid | ||||
; X86-NEXT: leal 4(%esi,%edx,8), %eax | ; X86-NEXT: leal 4(%esi,%edx,8), %eax | ||||
; X86-NEXT: imull %eax, %ecx | ; X86-NEXT: imull %eax, %ecx | ||||
; X86-NEXT: movl %ecx, %eax | ; X86-NEXT: movl %ecx, %eax | ||||
; X86-NEXT: .LBB2_2: # %exit | ; X86-NEXT: .LBB2_2: # %exit | ||||
; X86-NEXT: popl %esi | ; X86-NEXT: popl %esi | ||||
; X86-NEXT: .Lcfi2: | |||||
; X86-NEXT: .cfi_def_cfa_offset 4 | |||||
; X86-NEXT: retl | ; X86-NEXT: retl | ||||
entry: | entry: | ||||
%mul = shl i32 %b, 2 | %mul = shl i32 %b, 2 | ||||
%add = add i32 %a, 4 | %add = add i32 %a, 4 | ||||
%add1 = add i32 %add, %mul | %add1 = add i32 %add, %mul | ||||
%cmp = icmp ne i32 %add1 , 10 | %cmp = icmp ne i32 %add1 , 10 | ||||
br i1 %cmp , label %mid , label %exit | br i1 %cmp , label %mid , label %exit | ||||
mid: | mid: | ||||
Show All 22 Lines | |||||
; X64-NEXT: imull %eax, %ecx | ; X64-NEXT: imull %eax, %ecx | ||||
; X64-NEXT: movl %ecx, %eax | ; X64-NEXT: movl %ecx, %eax | ||||
; X64-NEXT: .LBB3_2: # %exit | ; X64-NEXT: .LBB3_2: # %exit | ||||
; X64-NEXT: retq | ; X64-NEXT: retq | ||||
; | ; | ||||
; X86-LABEL: foo1_mult_basic_blocks_illegal_scale: | ; X86-LABEL: foo1_mult_basic_blocks_illegal_scale: | ||||
; X86: # BB#0: # %entry | ; X86: # BB#0: # %entry | ||||
; X86-NEXT: pushl %esi | ; X86-NEXT: pushl %esi | ||||
; X86-NEXT: .Lcfi2: | |||||
; X86-NEXT: .cfi_def_cfa_offset 8 | |||||
; X86-NEXT: .Lcfi3: | ; X86-NEXT: .Lcfi3: | ||||
; X86-NEXT: .cfi_def_cfa_offset 8 | |||||
; X86-NEXT: .Lcfi4: | |||||
; X86-NEXT: .cfi_offset %esi, -8 | ; X86-NEXT: .cfi_offset %esi, -8 | ||||
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx | ; X86-NEXT: movl {{[0-9]+}}(%esp), %edx | ||||
; X86-NEXT: movl {{[0-9]+}}(%esp), %esi | ; X86-NEXT: movl {{[0-9]+}}(%esp), %esi | ||||
; X86-NEXT: leal 4(%esi,%edx,2), %ecx | ; X86-NEXT: leal 4(%esi,%edx,2), %ecx | ||||
; X86-NEXT: xorl %eax, %eax | ; X86-NEXT: xorl %eax, %eax | ||||
; X86-NEXT: cmpl $10, %ecx | ; X86-NEXT: cmpl $10, %ecx | ||||
; X86-NEXT: je .LBB3_2 | ; X86-NEXT: je .LBB3_2 | ||||
; X86-NEXT: # BB#1: # %mid | ; X86-NEXT: # BB#1: # %mid | ||||
; X86-NEXT: leal 4(%esi,%edx,8), %eax | ; X86-NEXT: leal 4(%esi,%edx,8), %eax | ||||
; X86-NEXT: imull %eax, %ecx | ; X86-NEXT: imull %eax, %ecx | ||||
; X86-NEXT: movl %ecx, %eax | ; X86-NEXT: movl %ecx, %eax | ||||
; X86-NEXT: .LBB3_2: # %exit | ; X86-NEXT: .LBB3_2: # %exit | ||||
; X86-NEXT: popl %esi | ; X86-NEXT: popl %esi | ||||
; X86-NEXT: .Lcfi5: | |||||
; X86-NEXT: .cfi_def_cfa_offset 4 | |||||
; X86-NEXT: retl | ; X86-NEXT: retl | ||||
entry: | entry: | ||||
%mul = shl i32 %b, 1 | %mul = shl i32 %b, 1 | ||||
%add = add i32 %a, 4 | %add = add i32 %a, 4 | ||||
%add1 = add i32 %add, %mul | %add1 = add i32 %add, %mul | ||||
%cmp = icmp ne i32 %add1 , 10 | %cmp = icmp ne i32 %add1 , 10 | ||||
br i1 %cmp, label %mid , label %exit | br i1 %cmp, label %mid , label %exit | ||||
mid: | mid: | ||||
Show All 9 Lines |