34 changes: 17 additions & 17 deletions llvm/test/CodeGen/X86/segmented-stacks.ll
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ define void @test_basic() #0 {
; X32-Linux-NEXT: ja .LBB0_2

; X32-Linux: pushl $0
; X32-Linux-NEXT: pushl $60
; X32-Linux-NEXT: pushl $44
; X32-Linux-NEXT: calll __morestack
; X32-Linux-NEXT: ret

Expand Down Expand Up @@ -105,7 +105,7 @@ define void @test_basic() #0 {
; X32-MinGW-NEXT: ja LBB0_2

; X32-MinGW: pushl $0
; X32-MinGW-NEXT: pushl $48
; X32-MinGW-NEXT: pushl $40
; X32-MinGW-NEXT: calll ___morestack
; X32-MinGW-NEXT: ret

Expand Down Expand Up @@ -135,7 +135,7 @@ define void @test_basic() #0 {
; X32-DFlyBSD-NEXT: ja .LBB0_2

; X32-DFlyBSD: pushl $0
; X32-DFlyBSD-NEXT: pushl $48
; X32-DFlyBSD-NEXT: pushl $40
; X32-DFlyBSD-NEXT: calll __morestack
; X32-DFlyBSD-NEXT: ret

Expand All @@ -162,7 +162,7 @@ define i32 @test_nested(i32 * nest %closure, i32 %other) #0 {
; X32-Linux-NEXT: ja .LBB1_2

; X32-Linux: pushl $4
; X32-Linux-NEXT: pushl $60
; X32-Linux-NEXT: pushl $44
; X32-Linux-NEXT: calll __morestack
; X32-Linux-NEXT: ret

Expand Down Expand Up @@ -209,7 +209,7 @@ define i32 @test_nested(i32 * nest %closure, i32 %other) #0 {
; X32-MinGW-NEXT: ja LBB1_2

; X32-MinGW: pushl $4
; X32-MinGW-NEXT: pushl $52
; X32-MinGW-NEXT: pushl $44
; X32-MinGW-NEXT: calll ___morestack
; X32-MinGW-NEXT: ret

Expand Down Expand Up @@ -238,7 +238,7 @@ define i32 @test_nested(i32 * nest %closure, i32 %other) #0 {
; X32-DFlyBSD-NEXT: ja .LBB1_2

; X32-DFlyBSD: pushl $4
; X32-DFlyBSD-NEXT: pushl $52
; X32-DFlyBSD-NEXT: pushl $44
; X32-DFlyBSD-NEXT: calll __morestack
; X32-DFlyBSD-NEXT: ret

Expand Down Expand Up @@ -305,12 +305,12 @@ define void @test_large() #0 {
; X64-Darwin-NEXT: callq ___morestack
; X64-Darwin-NEXT: ret

; X32-MinGW: leal -40008(%esp), %ecx
; X32-MinGW: leal -40000(%esp), %ecx
; X32-MinGW-NEXT: cmpl %fs:20, %ecx
; X32-MinGW-NEXT: ja LBB2_2

; X32-MinGW: pushl $0
; X32-MinGW-NEXT: pushl $40008
; X32-MinGW-NEXT: pushl $40000
; X32-MinGW-NEXT: calll ___morestack
; X32-MinGW-NEXT: ret

Expand All @@ -333,12 +333,12 @@ define void @test_large() #0 {
; X64-FreeBSD-NEXT: callq __morestack
; X64-FreeBSD-NEXT: ret

; X32-DFlyBSD: leal -40008(%esp), %ecx
; X32-DFlyBSD: leal -40000(%esp), %ecx
; X32-DFlyBSD-NEXT: cmpl %fs:16, %ecx
; X32-DFlyBSD-NEXT: ja .LBB2_2

; X32-DFlyBSD: pushl $0
; X32-DFlyBSD-NEXT: pushl $40008
; X32-DFlyBSD-NEXT: pushl $40000
; X32-DFlyBSD-NEXT: calll __morestack
; X32-DFlyBSD-NEXT: ret

Expand All @@ -364,7 +364,7 @@ define fastcc void @test_fastcc() #0 {
; X32-Linux-NEXT: ja .LBB3_2

; X32-Linux: pushl $0
; X32-Linux-NEXT: pushl $60
; X32-Linux-NEXT: pushl $44
; X32-Linux-NEXT: calll __morestack
; X32-Linux-NEXT: ret

Expand Down Expand Up @@ -415,7 +415,7 @@ define fastcc void @test_fastcc() #0 {
; X32-MinGW-NEXT: ja LBB3_2

; X32-MinGW: pushl $0
; X32-MinGW-NEXT: pushl $48
; X32-MinGW-NEXT: pushl $40
; X32-MinGW-NEXT: calll ___morestack
; X32-MinGW-NEXT: ret

Expand Down Expand Up @@ -445,7 +445,7 @@ define fastcc void @test_fastcc() #0 {
; X32-DFlyBSD-NEXT: ja .LBB3_2

; X32-DFlyBSD: pushl $0
; X32-DFlyBSD-NEXT: pushl $48
; X32-DFlyBSD-NEXT: pushl $40
; X32-DFlyBSD-NEXT: calll __morestack
; X32-DFlyBSD-NEXT: ret

Expand Down Expand Up @@ -524,12 +524,12 @@ define fastcc void @test_fastcc_large() #0 {

; X32-MinGW-LABEL: test_fastcc_large:

; X32-MinGW: leal -40008(%esp), %eax
; X32-MinGW: leal -40000(%esp), %eax
; X32-MinGW-NEXT: cmpl %fs:20, %eax
; X32-MinGW-NEXT: ja LBB4_2

; X32-MinGW: pushl $0
; X32-MinGW-NEXT: pushl $40008
; X32-MinGW-NEXT: pushl $40000
; X32-MinGW-NEXT: calll ___morestack
; X32-MinGW-NEXT: ret

Expand Down Expand Up @@ -557,12 +557,12 @@ define fastcc void @test_fastcc_large() #0 {

; X32-DFlyBSD-LABEL: test_fastcc_large:

; X32-DFlyBSD: leal -40008(%esp), %eax
; X32-DFlyBSD: leal -40000(%esp), %eax
; X32-DFlyBSD-NEXT: cmpl %fs:16, %eax
; X32-DFlyBSD-NEXT: ja .LBB4_2

; X32-DFlyBSD: pushl $0
; X32-DFlyBSD-NEXT: pushl $40008
; X32-DFlyBSD-NEXT: pushl $40000
; X32-DFlyBSD-NEXT: calll __morestack
; X32-DFlyBSD-NEXT: ret

Expand Down
4 changes: 2 additions & 2 deletions llvm/test/CodeGen/X86/seh-catch-all-win32.ll
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ entry:
; CHECK: movl -24(%ebp), %esp
; EH state -1
; CHECK: movl [[code_offs]](%ebp), %[[code:[a-z]+]]
; CHECK-DAG: movl %[[code]], 4(%esp)
; CHECK-DAG: movl $_str, (%esp)
; CHECK: pushl %[[code]]
; CHECK: pushl $_str
; CHECK: calll _printf

; CHECK: .section .xdata,"dr"
Expand Down
10 changes: 5 additions & 5 deletions llvm/test/CodeGen/X86/seh-stack-realign.ll
Original file line number Diff line number Diff line change
Expand Up @@ -57,19 +57,19 @@ entry:
; CHECK: movl %esp, [[reg_offs:[-0-9]+]](%esi)
; CHECK: movl $L__ehtable$main,
; EH state 0
; CHECK: movl $0, 40(%esi)
; CHECK: movl $0, 32(%esi)
; CHECK: calll _crash
; CHECK: retl
; CHECK: LBB0_[[lpbb:[0-9]+]]: # %__except
; Restore ESP
; CHECK: movl -24(%ebp), %esp
; Restore ESI
; CHECK: leal -44(%ebp), %esi
; CHECK: leal -36(%ebp), %esi
; Restore EBP
; CHECK: movl 12(%esi), %ebp
; CHECK: movl 4(%esi), %ebp
; CHECK: movl [[code_offs]](%esi), %[[code:[a-z]+]]
; CHECK-DAG: movl %[[code]], 4(%esp)
; CHECK-DAG: movl $_str, (%esp)
; CHECK: pushl %[[code]]
; CHECK: pushl $_str
; CHECK: calll _printf

; CHECK: .section .xdata,"dr"
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/CodeGen/X86/shrink-wrap-chkstk.ll
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,9 @@ false:
; CHECK: cmpl %edx, %eax
; CHECK: jge LBB1_2
; CHECK: pushl %eax
; CHECK: movl $4100, %eax
; CHECK: movl $4092, %eax
; CHECK: calll __chkstk
; CHECK: movl 4100(%esp), %eax
; CHECK: movl 4092(%esp), %eax
; CHECK: calll _doSomething
; CHECK: LBB1_2:
; CHECK: retl
2 changes: 1 addition & 1 deletion llvm/test/CodeGen/X86/sse-intel-ocl.ll
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ declare <16 x float> @func_float16(<16 x float>, <16 x float>)
; WIN64: ret

; WIN32: testf16_inp
; WIN32: movl %eax, (%esp)
; WIN32: pushl %eax
; WIN32: addps {{.*}}, {{%xmm[0-3]}}
; WIN32: addps {{.*}}, {{%xmm[0-3]}}
; WIN32: addps {{.*}}, {{%xmm[0-3]}}
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/CodeGen/X86/tailcall-stackalign.ll
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
; RUN: llc < %s -mtriple=i686-unknown-linux -tailcallopt | FileCheck %s
; RUN: llc < %s -mtriple=i686-unknown-linux -tailcallopt -no-x86-call-frame-opt | FileCheck %s
; Linux has 8 byte alignment so the params cause stack size 20 when tailcallopt
; is enabled, ensure that a normal fastcc call has matching stack size

Expand Down
2 changes: 1 addition & 1 deletion llvm/test/CodeGen/X86/twoaddr-coalesce.ll
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
; RUN: llc < %s -march=x86 | grep mov | count 4
; RUN: llc < %s -march=x86 | grep mov | count 2
; rdar://6523745

@"\01LC" = internal constant [4 x i8] c"%d\0A\00" ; <[4 x i8]*> [#uses=1]
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/CodeGen/X86/vararg-callee-cleanup.ll
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
; RUN: llc -mtriple=i686-pc-windows < %s | FileCheck %s
; RUN: llc -mtriple=i686-pc-windows -no-x86-call-frame-opt < %s | FileCheck %s

target datalayout = "e-m:w-p:32:32-i64:64-f80:32-n8:16:32-S32"

Expand Down
4 changes: 2 additions & 2 deletions llvm/test/CodeGen/X86/win-catchpad-csrs.ll
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ handler1:
; X86: calll _getint
; X86: calll _useints
; X86: movl $0, -{{[0-9]+}}(%ebp)
; X86: movl $1, (%esp)
; X86: pushl $1
; X86: calll _f
; X86: [[contbb:LBB0_[0-9]+]]: # %try.cont
; X86: popl %esi
Expand All @@ -71,7 +71,7 @@ handler1:
; X86: subl $16, %esp
; X86: addl $12, %ebp
; X86: movl $1, -{{[0-9]+}}(%ebp)
; X86: movl $2, (%esp)
; X86: pushl $2
; X86: calll _f
; X86: movl $[[restorebb]], %eax
; X86-NEXT: addl $16, %esp
Expand Down
30 changes: 16 additions & 14 deletions llvm/test/CodeGen/X86/win-catchpad.ll
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ try.cont:
; X86: movl %esp, -[[sp_offset:[0-9]+]](%ebp)
; X86: movl $0, -{{[0-9]+}}(%ebp)
; X86: leal -[[local_offs:[0-9]+]](%ebp), %[[addr_reg:[a-z]+]]
; X86-DAG: movl %[[addr_reg]], 4(%esp)
; X86-DAG: movl $1, (%esp)
; X86-DAG: pushl %[[addr_reg]]
; X86-DAG: pushl $1
; X86: calll _f
; X86: [[contbb:LBB0_[0-9]+]]: # %try.cont
; X86: retl
Expand All @@ -83,13 +83,14 @@ try.cont:
; X86-DAG: movl -32(%ebp), %[[e_reg:[a-z]+]]
; X86-DAG: leal -[[local_offs]](%ebp), %[[addr_reg:[a-z]+]]
; X86-DAG: movl $1, -{{[0-9]+}}(%ebp)
; X86-DAG: movl %[[addr_reg]], 4(%esp)
; X86-DAG: movl %[[e_reg]], (%esp)
; X86: pushl %[[addr_reg]]
; X86: pushl %[[e_reg]]
; X86: calll _f
; X86-NEXT: movl $[[restorebb1]], %eax
; X86-NEXT: addl $8, %esp
; X86-NEXT: popl %ebp
; X86-NEXT: retl
; X86: addl $8, %esp
; X86: movl $[[restorebb1]], %eax
; X86: addl $8, %esp
; X86: popl %ebp
; X86: retl

; X86: "?catch$[[catch2bb:[0-9]+]]@?0?try_catch_catch@4HA":
; X86: LBB0_[[catch2bb]]: # %handler2{{$}}
Expand All @@ -99,13 +100,14 @@ try.cont:
; X86: movl %esp, -[[sp_offset]](%ebp)
; X86-DAG: leal -[[local_offs]](%ebp), %[[addr_reg:[a-z]+]]
; X86-DAG: movl $1, -{{[0-9]+}}(%ebp)
; X86-DAG: movl %[[addr_reg]], 4(%esp)
; X86-DAG: movl $3, (%esp)
; X86: pushl %[[addr_reg]]
; X86: pushl $3
; X86: calll _f
; X86-NEXT: movl $[[restorebb2]], %eax
; X86-NEXT: addl $8, %esp
; X86-NEXT: popl %ebp
; X86-NEXT: retl
; X86: addl $8, %esp
; X86: movl $[[restorebb2]], %eax
; X86: addl $8, %esp
; X86: popl %ebp
; X86: retl

; X86: L__ehtable$try_catch_catch:
; X86: $handlerMap$0$try_catch_catch:
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/CodeGen/X86/win-cleanuppad.ll
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,11 @@ cleanup.outer: ; preds = %invoke.cont.1, %c
}

; X86-LABEL: _nested_cleanup:
; X86: movl $1, (%esp)
; X86: pushl $1
; X86: calll _f
; X86: movl $2, (%esp)
; X86: pushl $2
; X86: calll _f
; X86: movl $3, (%esp)
; X86: pushl $3
; X86: calll _f

; X86: "?dtor$[[cleanup_inner:[0-9]+]]@?0?nested_cleanup@4HA":
Expand Down
16 changes: 8 additions & 8 deletions llvm/test/CodeGen/X86/win32-eh-states.ll
Original file line number Diff line number Diff line change
Expand Up @@ -68,19 +68,19 @@ catch.7:
; X86: movl $___ehhandler$f, {{.*}}
;
; X86: movl $0, [[state]](%ebp)
; X86: movl $1, (%esp)
; X86: pushl $1
; X86: calll _may_throw
;
; X86: movl $1, [[state]](%ebp)
; X86: movl $2, (%esp)
; X86: pushl $2
; X86: calll _may_throw
;
; X86: movl $2, [[state]](%ebp)
; X86: movl $3, (%esp)
; X86: pushl $3
; X86: calll _may_throw
;
; X86: movl $3, [[state]](%ebp)
; X86: movl $4, (%esp)
; X86: pushl $4
; X86: calll _may_throw


Expand Down Expand Up @@ -172,19 +172,19 @@ unreachable: ; preds = %entry
; X86: movl $___ehhandler$g, {{.*}}
;
; X86: movl $1, [[state]](%ebp)
; X86: movl $-1, (%esp)
; X86: pushl $-1
; X86: calll _may_throw
;
; X86: movl $2, [[state]](%ebp)
; X86: movl $0, (%esp)
; X86: pushl $0
; X86: calll _may_throw
;
; X86: movl $3, [[state]](%ebp)
; X86: movl $1, (%esp)
; X86: pushl $1
; X86: calll _may_throw
;
; X86: movl $2, [[state]](%ebp)
; X86: movl $2, (%esp)
; X86: pushl $2
; X86: calll _may_throw

; X64-LABEL: g:
Expand Down
8 changes: 4 additions & 4 deletions llvm/test/CodeGen/X86/win32-seh-catchpad.ll
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,16 @@ invoke.cont: ; preds = %entry
; CHECK-LABEL: _try_except:
; Store state #0
; CHECK: movl $0, -[[state:[0-9]+]](%ebp)
; CHECK: movl $1, (%esp)
; CHECK: pushl $1
; CHECK: calll _f
; CHECK: movl $-1, -[[state]](%ebp)
; CHECK: movl $3, (%esp)
; CHECK: pushl $3
; CHECK: calll _f
; CHECK: retl

; __except
; CHECK: movl $-1, -[[state]](%ebp)
; CHECK: movl $2, (%esp)
; CHECK: pushl $2
; CHECK: calll _f

; CHECK: .section .xdata,"dr"
Expand Down Expand Up @@ -205,7 +205,7 @@ __except:
; CHECK-NEXT: movl -24(%ebp), %esp
; CHECK-NEXT: addl $12, %ebp
; CHECK-NEXT: movl $-1, -16(%ebp)
; CHECK-NEXT: movl $2, (%esp)
; CHECK-NEXT: pushl $2
; CHECK-NEXT: calll _f


Expand Down
13 changes: 8 additions & 5 deletions llvm/test/CodeGen/X86/win32-seh-nested-finally.ll
Original file line number Diff line number Diff line change
Expand Up @@ -43,28 +43,31 @@ attributes #3 = { noinline }
; CHECK: movl $-1, -[[state:[0-9]+]](%ebp)
; CHECK: movl {{.*}}, %fs:0
; CHECK: movl $1, -[[state]](%ebp)
; CHECK: movl $1, (%esp)
; CHECK: pushl $1
; CHECK: calll _f
; CHECK: addl $4, %esp
; CHECK: movl $0, -[[state]](%ebp)
; CHECK: movl $2, (%esp)
; CHECK: pushl $2
; CHECK: calll _f
; CHECK: addl $4, %esp
; CHECK: movl $-1, -[[state]](%ebp)
; CHECK: movl $3, (%esp)
; CHECK: pushl $3
; CHECK: calll _f
; CHECK: addl $4, %esp
; CHECK: retl

; CHECK: LBB0_[[inner:[0-9]+]]: # %ehcleanup
; CHECK: pushl %ebp
; CHECK: addl $12, %ebp
; CHECK: movl $2, (%esp)
; CHECK: pushl $2
; CHECK: calll _f
; CHECK: popl %ebp
; CHECK: retl

; CHECK: LBB0_[[outer:[0-9]+]]: # %ehcleanup.3
; CHECK: pushl %ebp
; CHECK: addl $12, %ebp
; CHECK: movl $3, (%esp)
; CHECK: pushl $3
; CHECK: calll _f
; CHECK: popl %ebp
; CHECK: retl
Expand Down
47 changes: 21 additions & 26 deletions llvm/test/CodeGen/X86/win32_sret.ll
Original file line number Diff line number Diff line change
Expand Up @@ -135,12 +135,11 @@ entry:


; Load the address of the result and put it onto stack
; (through %ecx in the -O0 build).
; WIN32: leal {{[0-9]+}}(%esp), %e{{[a-d]}}x
; WIN32: movl %e{{[a-d]}}x, (%e{{([a-d]x)|(sp)}})

; The this pointer goes to ECX.
; WIN32-NEXT: leal {{[0-9]+}}(%esp), %ecx
; (through %ecx in the -O0 build).
; WIN32: leal {{[0-9]*}}(%esp), %e{{[a-d]}}x
; WIN32: leal {{[0-9]*}}(%esp), %ecx
; WIN32: pushl %e{{[a-d]}}x
; WIN32-NEXT: calll "?foo@C5@@QAE?AUS5@@XZ"
; WIN32: retl
ret void
Expand All @@ -155,25 +154,21 @@ define void @test6_f(%struct.test6* %x) nounwind {
; LINUX-LABEL: test6_f:

; The %x argument is moved to %ecx. It will be the this pointer.
; WIN32: movl 20(%esp), %ecx

; The %x argument is moved to (%esp). It will be the this pointer. With -O0
; we copy esp to ecx and use (ecx) instead of (esp).
; MINGW_X86: movl 20(%esp), %eax
; MINGW_X86: movl %eax, (%e{{([a-d]x)|(sp)}})
; WIN32: movl 16(%esp), %ecx

; CYGWIN: movl 20(%esp), %eax
; CYGWIN: movl %eax, (%e{{([a-d]x)|(sp)}})

; The sret pointer is (%esp)
; WIN32: leal 4(%esp), %[[REG:e[a-d]x]]
; WIN32-NEXT: movl %[[REG]], (%e{{([a-d]x)|(sp)}})
; WIN32: leal (%esp), %[[REG:e[a-d]x]]
; WIN32-NEXT: pushl %[[REG]]

; The sret pointer is %ecx
; MINGW_X86-NEXT: leal 4(%esp), %ecx
; The %x argument is moved to (%esp). It will be the this pointer.
; MINGW_X86: leal (%esp), %ecx
; MINGW_X86-NEXT: pushl 16(%esp)
; MINGW_X86-NEXT: calll _test6_g

; CYGWIN-NEXT: leal 4(%esp), %ecx
; CYGWIN: leal (%esp), %ecx
; CYGWIN-NEXT: pushl 16(%esp)
; CYGWIN-NEXT: calll _test6_g

%tmp = alloca %struct.test6, align 4
Expand All @@ -191,17 +186,17 @@ define void @test7_f(%struct.test7* %x) nounwind {
; LINUX-LABEL: test7_f:

; The %x argument is moved to %ecx on all OSs. It will be the this pointer.
; WIN32: movl 20(%esp), %ecx
; MINGW_X86: movl 20(%esp), %ecx
; CYGWIN: movl 20(%esp), %ecx
; WIN32: movl 16(%esp), %ecx
; MINGW_X86: movl 16(%esp), %ecx
; CYGWIN: movl 16(%esp), %ecx

; The sret pointer is (%esp)
; WIN32: leal 4(%esp), %[[REG:e[a-d]x]]
; WIN32-NEXT: movl %[[REG]], (%e{{([a-d]x)|(sp)}})
; MINGW_X86: leal 4(%esp), %[[REG:e[a-d]x]]
; MINGW_X86-NEXT: movl %[[REG]], (%e{{([a-d]x)|(sp)}})
; CYGWIN: leal 4(%esp), %[[REG:e[a-d]x]]
; CYGWIN-NEXT: movl %[[REG]], (%e{{([a-d]x)|(sp)}})
; WIN32: leal (%esp), %[[REG:e[a-d]x]]
; WIN32-NEXT: pushl %[[REG]]
; MINGW_X86: leal (%esp), %[[REG:e[a-d]x]]
; MINGW_X86-NEXT: pushl %[[REG]]
; CYGWIN: leal (%esp), %[[REG:e[a-d]x]]
; CYGWIN-NEXT: pushl %[[REG]]

%tmp = alloca %struct.test7, align 4
call x86_thiscallcc void @test7_g(%struct.test7* %x, %struct.test7* sret %tmp)
Expand Down
18 changes: 9 additions & 9 deletions llvm/test/CodeGen/X86/xmulo.ll
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ declare i32 @printf(i8*, ...)

define i32 @t1() nounwind {
; CHECK-LABEL: t1:
; CHECK: movl $0, 12(%esp)
; CHECK: movl $0, 8(%esp)
; CHECK: movl $72, 4(%esp)
; CHECK: pushl $0
; CHECK: pushl $0
; CHECK: pushl $72

%1 = call {i64, i1} @llvm.umul.with.overflow.i64(i64 9, i64 8)
%2 = extractvalue {i64, i1} %1, 0
Expand All @@ -23,9 +23,9 @@ define i32 @t1() nounwind {

define i32 @t2() nounwind {
; CHECK-LABEL: t2:
; CHECK: movl $0, 12(%esp)
; CHECK: movl $0, 8(%esp)
; CHECK: movl $0, 4(%esp)
; CHECK: pushl $0
; CHECK: pushl $0
; CHECK: pushl $0

%1 = call {i64, i1} @llvm.umul.with.overflow.i64(i64 9, i64 0)
%2 = extractvalue {i64, i1} %1, 0
Expand All @@ -37,9 +37,9 @@ define i32 @t2() nounwind {

define i32 @t3() nounwind {
; CHECK-LABEL: t3:
; CHECK: movl $1, 12(%esp)
; CHECK: movl $-1, 8(%esp)
; CHECK: movl $-9, 4(%esp)
; CHECK: pushl $1
; CHECK: pushl $-1
; CHECK: pushl $-9

%1 = call {i64, i1} @llvm.umul.with.overflow.i64(i64 9, i64 -1)
%2 = extractvalue {i64, i1} %1, 0
Expand Down
5 changes: 3 additions & 2 deletions llvm/test/CodeGen/X86/zext-fold.ll
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ define void @test3(i8 %x) nounwind readnone {
}
; CHECK: test3
; CHECK: movzbl {{[0-9]+}}(%esp), [[REGISTER:%e[a-z]{2}]]
; CHECK-NEXT: movl [[REGISTER]], 4(%esp)
; CHECK: subl $8, %esp
; CHECK-NEXT: pushl [[REGISTER]]
; CHECK-NEXT: andl $224, [[REGISTER]]
; CHECK-NEXT: movl [[REGISTER]], (%esp)
; CHECK-NEXT: pushl [[REGISTER]]
; CHECK-NEXT: call{{.*}}use