; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=i686-unknown | FileCheck %s --check-prefix=X86
; RUN: llc < %s -mtriple=x86_64-unknown -print-schedule=true -mcpu=haswell| FileCheck %s --check-prefix=X64-HSW
; RUN: llc < %s -mtriple=x86_64-unknown -print-schedule=true -mcpu=btver2| FileCheck %s --check-prefix=X64-JAG
; RUN: llc < %s -mtriple=i686-unknown -mul-constant-optimization=false | FileCheck %s --check-prefix=X86-NOOPT
; RUN: llc < %s -mtriple=x86_64-unknown -mul-constant-optimization=false -print-schedule=true -mcpu=haswell| FileCheck %s --check-prefix=HSW-NOOPT
; RUN: llc < %s -mtriple=x86_64-unknown -mul-constant-optimization=false -print-schedule=true -mcpu=btver2| FileCheck %s --check-prefix=JAG-NOOPT
; RUN: llc < %s -mtriple=x86_64-unknown -print-schedule=true -mcpu=slm| FileCheck %s --check-prefix=X64-SLM
; RUN: llc < %s -mtriple=x86_64-unknown -mul-constant-optimization=false -print-schedule=true -mcpu=slm| FileCheck %s --check-prefix=SLM-NOOPT

define i32 @test_mul_by_1(i32 %x) {
; X86-LABEL: test_mul_by_1:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_1:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    movl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_1:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    movl %edi, %eax # sched: [1:0.17]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_1:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_1:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    movl %edi, %eax # sched: [1:0.25]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_1:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    movl %edi, %eax # sched: [1:0.17]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_1:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    movl %edi, %eax # sched: [1:0.50]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_1:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    movl %edi, %eax # sched: [1:0.50]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 1
  ret i32 %mul
}

define i32 @test_mul_by_2(i32 %x) {
; X86-LABEL: test_mul_by_2:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    addl %eax, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_2:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_2:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_2:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    addl %eax, %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_2:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; HSW-NOOPT-NEXT:    leal (%rdi,%rdi), %eax # sched: [1:0.50]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_2:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; JAG-NOOPT-NEXT:    leal (%rdi,%rdi), %eax # sched: [1:0.50]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_2:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    leal (%rdi,%rdi), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_2:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; SLM-NOOPT-NEXT:    leal (%rdi,%rdi), %eax # sched: [1:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 2
  ret i32 %mul
}

define i32 @test_mul_by_3(i32 %x) {
; X86-LABEL: test_mul_by_3:
; X86:       # BB#0:
; X86-NEXT:    imull $3, {{[0-9]+}}(%esp), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_3:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_3:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_3:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $3, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_3:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; HSW-NOOPT-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_3:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; JAG-NOOPT-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_3:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_3:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; SLM-NOOPT-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 3
  ret i32 %mul
}

define i32 @test_mul_by_4(i32 %x) {
; X86-LABEL: test_mul_by_4:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    shll $2, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_4:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (,%rdi,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_4:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (,%rdi,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_4:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    shll $2, %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_4:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; HSW-NOOPT-NEXT:    leal (,%rdi,4), %eax # sched: [1:0.50]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_4:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; JAG-NOOPT-NEXT:    leal (,%rdi,4), %eax # sched: [1:0.50]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_4:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    leal (,%rdi,4), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_4:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; SLM-NOOPT-NEXT:    leal (,%rdi,4), %eax # sched: [1:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 4
  ret i32 %mul
}

define i32 @test_mul_by_5(i32 %x) {
; X86-LABEL: test_mul_by_5:
; X86:       # BB#0:
; X86-NEXT:    imull $5, {{[0-9]+}}(%esp), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_5:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_5:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_5:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $5, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_5:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; HSW-NOOPT-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_5:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; JAG-NOOPT-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_5:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_5:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; SLM-NOOPT-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 5
  ret i32 %mul
}

define i32 @test_mul_by_6(i32 %x) {
; X86-LABEL: test_mul_by_6:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    addl %eax, %eax
; X86-NEXT:    leal (%eax,%eax,2), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_6:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    addl %edi, %edi # sched: [1:0.25]
; X64-HSW-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_6:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    addl %edi, %edi # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_6:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $6, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_6:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $6, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_6:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $6, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_6:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    addl %edi, %edi # sched: [1:0.50]
; X64-SLM-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_6:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $6, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 6
  ret i32 %mul
}

define i32 @test_mul_by_7(i32 %x) {
; X86-LABEL: test_mul_by_7:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT:    leal (,%ecx,8), %eax
; X86-NEXT:    subl %ecx, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_7:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (,%rdi,8), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    subl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_7:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (,%rdi,8), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    subl %edi, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_7:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $7, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_7:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $7, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_7:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $7, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_7:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    leal (,%rdi,8), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    subl %edi, %eax # sched: [1:0.50]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_7:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $7, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 7
  ret i32 %mul
}

define i32 @test_mul_by_8(i32 %x) {
; X86-LABEL: test_mul_by_8:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    shll $3, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_8:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (,%rdi,8), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_8:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (,%rdi,8), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_8:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    shll $3, %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_8:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; HSW-NOOPT-NEXT:    leal (,%rdi,8), %eax # sched: [1:0.50]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_8:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; JAG-NOOPT-NEXT:    leal (,%rdi,8), %eax # sched: [1:0.50]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_8:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    leal (,%rdi,8), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_8:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; SLM-NOOPT-NEXT:    leal (,%rdi,8), %eax # sched: [1:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 8
  ret i32 %mul
}

define i32 @test_mul_by_9(i32 %x) {
; X86-LABEL: test_mul_by_9:
; X86:       # BB#0:
; X86-NEXT:    imull $9, {{[0-9]+}}(%esp), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_9:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_9:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_9:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $9, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_9:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; HSW-NOOPT-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:0.50]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_9:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; JAG-NOOPT-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:0.50]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_9:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_9:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; SLM-NOOPT-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 9
  ret i32 %mul
}

define i32 @test_mul_by_10(i32 %x) {
; X86-LABEL: test_mul_by_10:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    addl %eax, %eax
; X86-NEXT:    leal (%eax,%eax,4), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_10:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    addl %edi, %edi # sched: [1:0.25]
; X64-HSW-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_10:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    addl %edi, %edi # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_10:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $10, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_10:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $10, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_10:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $10, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_10:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    addl %edi, %edi # sched: [1:0.50]
; X64-SLM-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_10:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $10, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 10
  ret i32 %mul
}

define i32 @test_mul_by_11(i32 %x) {
; X86-LABEL: test_mul_by_11:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    leal (%eax,%eax,4), %ecx
; X86-NEXT:    leal (%eax,%ecx,2), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_11:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    leal (%rdi,%rax,2), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_11:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rdi,%rax,2), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_11:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $11, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_11:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $11, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_11:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $11, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_11:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    imull $11, %edi, %eax # sched: [3:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_11:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $11, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 11
  ret i32 %mul
}

define i32 @test_mul_by_12(i32 %x) {
; X86-LABEL: test_mul_by_12:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    shll $2, %eax
; X86-NEXT:    leal (%eax,%eax,2), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_12:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    shll $2, %edi # sched: [1:0.50]
; X64-HSW-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_12:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    shll $2, %edi # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_12:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $12, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_12:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $12, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_12:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $12, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_12:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    shll $2, %edi # sched: [1:1.00]
; X64-SLM-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_12:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $12, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 12
  ret i32 %mul
}

define i32 @test_mul_by_13(i32 %x) {
; X86-LABEL: test_mul_by_13:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    leal (%eax,%eax,2), %ecx
; X86-NEXT:    leal (%eax,%ecx,4), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_13:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    leal (%rdi,%rax,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_13:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rdi,%rax,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_13:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $13, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_13:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $13, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_13:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $13, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_13:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    imull $13, %edi, %eax # sched: [3:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_13:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $13, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 13
  ret i32 %mul
}

define i32 @test_mul_by_14(i32 %x) {
; X86-LABEL: test_mul_by_14:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT:    leal (%ecx,%ecx,2), %eax
; X86-NEXT:    leal (%ecx,%eax,4), %eax
; X86-NEXT:    addl %ecx, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_14:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    leal (%rdi,%rax,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    addl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_14:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rdi,%rax,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    addl %edi, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_14:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $14, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_14:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $14, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_14:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $14, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_14:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    imull $14, %edi, %eax # sched: [3:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_14:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $14, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 14
  ret i32 %mul
}

define i32 @test_mul_by_15(i32 %x) {
; X86-LABEL: test_mul_by_15:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    leal (%eax,%eax,4), %eax
; X86-NEXT:    leal (%eax,%eax,2), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_15:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    leal (%rax,%rax,2), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_15:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rax,%rax,2), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_15:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $15, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_15:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $15, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_15:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $15, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_15:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    leal (%rax,%rax,2), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_15:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $15, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 15
  ret i32 %mul
}

define i32 @test_mul_by_16(i32 %x) {
; X86-LABEL: test_mul_by_16:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    shll $4, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_16:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    shll $4, %edi # sched: [1:0.50]
; X64-HSW-NEXT:    movl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_16:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    shll $4, %edi # sched: [1:0.50]
; X64-JAG-NEXT:    movl %edi, %eax # sched: [1:0.17]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_16:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    shll $4, %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_16:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    shll $4, %edi # sched: [1:0.50]
; HSW-NOOPT-NEXT:    movl %edi, %eax # sched: [1:0.25]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_16:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    shll $4, %edi # sched: [1:0.50]
; JAG-NOOPT-NEXT:    movl %edi, %eax # sched: [1:0.17]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_16:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    shll $4, %edi # sched: [1:1.00]
; X64-SLM-NEXT:    movl %edi, %eax # sched: [1:0.50]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_16:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    shll $4, %edi # sched: [1:1.00]
; SLM-NOOPT-NEXT:    movl %edi, %eax # sched: [1:0.50]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 16
  ret i32 %mul
}

define i32 @test_mul_by_17(i32 %x) {
; X86-LABEL: test_mul_by_17:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT:    movl %ecx, %eax
; X86-NEXT:    shll $4, %eax
; X86-NEXT:    addl %ecx, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_17:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    movl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    shll $4, %eax # sched: [1:0.50]
; X64-HSW-NEXT:    leal (%rax,%rdi), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_17:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    movl %edi, %eax # sched: [1:0.17]
; X64-JAG-NEXT:    shll $4, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rax,%rdi), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_17:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $17, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_17:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $17, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_17:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $17, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_17:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    movl %edi, %eax # sched: [1:0.50]
; X64-SLM-NEXT:    shll $4, %eax # sched: [1:1.00]
; X64-SLM-NEXT:    leal (%rax,%rdi), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_17:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $17, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 17
  ret i32 %mul
}

define i32 @test_mul_by_18(i32 %x) {
; X86-LABEL: test_mul_by_18:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    addl %eax, %eax
; X86-NEXT:    leal (%eax,%eax,8), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_18:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    addl %edi, %edi # sched: [1:0.25]
; X64-HSW-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_18:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    addl %edi, %edi # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_18:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $18, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_18:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $18, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_18:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $18, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_18:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    addl %edi, %edi # sched: [1:0.50]
; X64-SLM-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_18:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $18, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 18
  ret i32 %mul
}

define i32 @test_mul_by_19(i32 %x) {
; X86-LABEL: test_mul_by_19:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT:    leal (%ecx,%ecx,4), %eax
; X86-NEXT:    shll $2, %eax
; X86-NEXT:    subl %ecx, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_19:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    shll $2, %eax # sched: [1:0.50]
; X64-HSW-NEXT:    subl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_19:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    shll $2, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    subl %edi, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_19:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $19, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_19:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $19, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_19:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $19, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_19:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    imull $19, %edi, %eax # sched: [3:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_19:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $19, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 19
  ret i32 %mul
}

define i32 @test_mul_by_20(i32 %x) {
; X86-LABEL: test_mul_by_20:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    shll $2, %eax
; X86-NEXT:    leal (%eax,%eax,4), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_20:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    shll $2, %edi # sched: [1:0.50]
; X64-HSW-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_20:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    shll $2, %edi # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_20:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $20, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_20:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $20, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_20:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $20, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_20:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    shll $2, %edi # sched: [1:1.00]
; X64-SLM-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_20:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $20, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 20
  ret i32 %mul
}

define i32 @test_mul_by_21(i32 %x) {
; X86-LABEL: test_mul_by_21:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    leal (%eax,%eax,4), %ecx
; X86-NEXT:    leal (%eax,%ecx,4), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_21:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    leal (%rdi,%rax,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_21:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rdi,%rax,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_21:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $21, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_21:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $21, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_21:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $21, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_21:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    imull $21, %edi, %eax # sched: [3:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_21:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $21, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 21
  ret i32 %mul
}

define i32 @test_mul_by_22(i32 %x) {
; X86-LABEL: test_mul_by_22:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT:    leal (%ecx,%ecx,4), %eax
; X86-NEXT:    leal (%ecx,%eax,4), %eax
; X86-NEXT:    addl %ecx, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_22:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    leal (%rdi,%rax,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    addl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_22:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rdi,%rax,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    addl %edi, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_22:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $22, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_22:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $22, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_22:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $22, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_22:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    imull $22, %edi, %eax # sched: [3:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_22:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $22, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 22
  ret i32 %mul
}

define i32 @test_mul_by_23(i32 %x) {
; X86-LABEL: test_mul_by_23:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT:    leal (%ecx,%ecx,2), %eax
; X86-NEXT:    shll $3, %eax
; X86-NEXT:    subl %ecx, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_23:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    shll $3, %eax # sched: [1:0.50]
; X64-HSW-NEXT:    subl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_23:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    shll $3, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    subl %edi, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_23:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $23, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_23:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $23, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_23:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $23, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_23:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    imull $23, %edi, %eax # sched: [3:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_23:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $23, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 23
  ret i32 %mul
}

define i32 @test_mul_by_24(i32 %x) {
; X86-LABEL: test_mul_by_24:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    shll $3, %eax
; X86-NEXT:    leal (%eax,%eax,2), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_24:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    shll $3, %edi # sched: [1:0.50]
; X64-HSW-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_24:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    shll $3, %edi # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_24:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $24, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_24:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $24, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_24:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $24, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_24:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    shll $3, %edi # sched: [1:1.00]
; X64-SLM-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_24:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $24, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 24
  ret i32 %mul
}

define i32 @test_mul_by_25(i32 %x) {
; X86-LABEL: test_mul_by_25:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    leal (%eax,%eax,4), %eax
; X86-NEXT:    leal (%eax,%eax,4), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_25:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    leal (%rax,%rax,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_25:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rax,%rax,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_25:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $25, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_25:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $25, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_25:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $25, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_25:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    leal (%rax,%rax,4), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_25:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $25, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 25
  ret i32 %mul
}

define i32 @test_mul_by_26(i32 %x) {
; X86-LABEL: test_mul_by_26:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT:    leal (%ecx,%ecx,8), %eax
; X86-NEXT:    leal (%eax,%eax,2), %eax
; X86-NEXT:    subl %ecx, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_26:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    leal (%rax,%rax,2), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    subl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_26:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rax,%rax,2), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    subl %edi, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_26:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $26, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_26:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $26, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_26:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $26, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_26:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    imull $26, %edi, %eax # sched: [3:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_26:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $26, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 26
  ret i32 %mul
}

define i32 @test_mul_by_27(i32 %x) {
; X86-LABEL: test_mul_by_27:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    leal (%eax,%eax,8), %eax
; X86-NEXT:    leal (%eax,%eax,2), %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_27:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    leal (%rax,%rax,2), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_27:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rax,%rax,2), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_27:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $27, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_27:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $27, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_27:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $27, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_27:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    leal (%rax,%rax,2), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_27:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $27, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 27
  ret i32 %mul
}

define i32 @test_mul_by_28(i32 %x) {
; X86-LABEL: test_mul_by_28:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT:    leal (%ecx,%ecx,8), %eax
; X86-NEXT:    leal (%eax,%eax,2), %eax
; X86-NEXT:    addl %ecx, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_28:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    leal (%rax,%rax,2), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    addl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_28:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rax,%rax,2), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    addl %edi, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_28:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $28, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_28:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $28, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_28:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $28, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_28:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    imull $28, %edi, %eax # sched: [3:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_28:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $28, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 28
  ret i32 %mul
}

define i32 @test_mul_by_29(i32 %x) {
; X86-LABEL: test_mul_by_29:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT:    leal (%ecx,%ecx,8), %eax
; X86-NEXT:    leal (%eax,%eax,2), %eax
; X86-NEXT:    addl %ecx, %eax
; X86-NEXT:    addl %ecx, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_29:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    leal (%rax,%rax,2), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    addl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    addl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_29:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal (%rdi,%rdi,8), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    leal (%rax,%rax,2), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    addl %edi, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    addl %edi, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_29:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $29, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_29:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $29, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_29:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $29, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_29:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    imull $29, %edi, %eax # sched: [3:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_29:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $29, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 29
  ret i32 %mul
}

define i32 @test_mul_by_30(i32 %x) {
; X86-LABEL: test_mul_by_30:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT:    movl %ecx, %eax
; X86-NEXT:    shll $5, %eax
; X86-NEXT:    subl %ecx, %eax
; X86-NEXT:    subl %ecx, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_30:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    movl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    shll $5, %eax # sched: [1:0.50]
; X64-HSW-NEXT:    subl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    subl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_30:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    movl %edi, %eax # sched: [1:0.17]
; X64-JAG-NEXT:    shll $5, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    subl %edi, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    subl %edi, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_30:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $30, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_30:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $30, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_30:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $30, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_30:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    imull $30, %edi, %eax # sched: [3:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_30:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $30, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 30
  ret i32 %mul
}

define i32 @test_mul_by_31(i32 %x) {
; X86-LABEL: test_mul_by_31:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT:    movl %ecx, %eax
; X86-NEXT:    shll $5, %eax
; X86-NEXT:    subl %ecx, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_31:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    movl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    shll $5, %eax # sched: [1:0.50]
; X64-HSW-NEXT:    subl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_31:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    movl %edi, %eax # sched: [1:0.17]
; X64-JAG-NEXT:    shll $5, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    subl %edi, %eax # sched: [1:0.50]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_31:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    imull $31, {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_31:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    imull $31, %edi, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_31:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    imull $31, %edi, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_31:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    movl %edi, %eax # sched: [1:0.50]
; X64-SLM-NEXT:    shll $5, %eax # sched: [1:1.00]
; X64-SLM-NEXT:    subl %edi, %eax # sched: [1:0.50]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_31:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    imull $31, %edi, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 31
  ret i32 %mul
}

define i32 @test_mul_by_32(i32 %x) {
; X86-LABEL: test_mul_by_32:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    shll $5, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_by_32:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    shll $5, %edi # sched: [1:0.50]
; X64-HSW-NEXT:    movl %edi, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_by_32:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    shll $5, %edi # sched: [1:0.50]
; X64-JAG-NEXT:    movl %edi, %eax # sched: [1:0.17]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_by_32:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    shll $5, %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_by_32:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    shll $5, %edi # sched: [1:0.50]
; HSW-NOOPT-NEXT:    movl %edi, %eax # sched: [1:0.25]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_by_32:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    shll $5, %edi # sched: [1:0.50]
; JAG-NOOPT-NEXT:    movl %edi, %eax # sched: [1:0.17]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_by_32:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    shll $5, %edi # sched: [1:1.00]
; X64-SLM-NEXT:    movl %edi, %eax # sched: [1:0.50]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_by_32:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    shll $5, %edi # sched: [1:1.00]
; SLM-NOOPT-NEXT:    movl %edi, %eax # sched: [1:0.50]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 32
  ret i32 %mul
}

; (x*9+42)*(x*5+2)
define i32 @test_mul_spec(i32 %x) nounwind {
; X86-LABEL: test_mul_spec:
; X86:       # BB#0:
; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NEXT:    leal 42(%eax,%eax,8), %ecx
; X86-NEXT:    leal 2(%eax,%eax,4), %eax
; X86-NEXT:    imull %ecx, %eax
; X86-NEXT:    retl
;
; X64-HSW-LABEL: test_mul_spec:
; X64-HSW:       # BB#0:
; X64-HSW-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-HSW-NEXT:    leal (%rdi,%rdi,8), %ecx # sched: [1:0.50]
; X64-HSW-NEXT:    addl $42, %ecx # sched: [1:0.25]
; X64-HSW-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-HSW-NEXT:    addl $2, %eax # sched: [1:0.25]
; X64-HSW-NEXT:    imull %ecx, %eax # sched: [4:1.00]
; X64-HSW-NEXT:    retq # sched: [1:1.00]
;
; X64-JAG-LABEL: test_mul_spec:
; X64-JAG:       # BB#0:
; X64-JAG-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-JAG-NEXT:    leal 42(%rdi,%rdi,8), %ecx # sched: [1:0.50]
; X64-JAG-NEXT:    leal 2(%rdi,%rdi,4), %eax # sched: [1:0.50]
; X64-JAG-NEXT:    imull %ecx, %eax # sched: [3:1.00]
; X64-JAG-NEXT:    retq # sched: [4:1.00]
;
; X86-NOOPT-LABEL: test_mul_spec:
; X86-NOOPT:       # BB#0:
; X86-NOOPT-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X86-NOOPT-NEXT:    leal 42(%eax,%eax,8), %ecx
; X86-NOOPT-NEXT:    leal 2(%eax,%eax,4), %eax
; X86-NOOPT-NEXT:    imull %ecx, %eax
; X86-NOOPT-NEXT:    retl
;
; HSW-NOOPT-LABEL: test_mul_spec:
; HSW-NOOPT:       # BB#0:
; HSW-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; HSW-NOOPT-NEXT:    leal (%rdi,%rdi,8), %ecx # sched: [1:0.50]
; HSW-NOOPT-NEXT:    addl $42, %ecx # sched: [1:0.25]
; HSW-NOOPT-NEXT:    leal (%rdi,%rdi,4), %eax # sched: [1:0.50]
; HSW-NOOPT-NEXT:    addl $2, %eax # sched: [1:0.25]
; HSW-NOOPT-NEXT:    imull %ecx, %eax # sched: [4:1.00]
; HSW-NOOPT-NEXT:    retq # sched: [1:1.00]
;
; JAG-NOOPT-LABEL: test_mul_spec:
; JAG-NOOPT:       # BB#0:
; JAG-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; JAG-NOOPT-NEXT:    leal 42(%rdi,%rdi,8), %ecx # sched: [1:0.50]
; JAG-NOOPT-NEXT:    leal 2(%rdi,%rdi,4), %eax # sched: [1:0.50]
; JAG-NOOPT-NEXT:    imull %ecx, %eax # sched: [3:1.00]
; JAG-NOOPT-NEXT:    retq # sched: [4:1.00]
;
; X64-SLM-LABEL: test_mul_spec:
; X64-SLM:       # BB#0:
; X64-SLM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; X64-SLM-NEXT:    leal 42(%rdi,%rdi,8), %ecx # sched: [1:1.00]
; X64-SLM-NEXT:    leal 2(%rdi,%rdi,4), %eax # sched: [1:1.00]
; X64-SLM-NEXT:    imull %ecx, %eax # sched: [3:1.00]
; X64-SLM-NEXT:    retq # sched: [4:1.00]
;
; SLM-NOOPT-LABEL: test_mul_spec:
; SLM-NOOPT:       # BB#0:
; SLM-NOOPT-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
; SLM-NOOPT-NEXT:    leal 42(%rdi,%rdi,8), %ecx # sched: [1:1.00]
; SLM-NOOPT-NEXT:    leal 2(%rdi,%rdi,4), %eax # sched: [1:1.00]
; SLM-NOOPT-NEXT:    imull %ecx, %eax # sched: [3:1.00]
; SLM-NOOPT-NEXT:    retq # sched: [4:1.00]
  %mul = mul nsw i32 %x, 9
  %add = add nsw i32 %mul, 42
  %mul2 = mul nsw i32 %x, 5
  %add2 = add nsw i32 %mul2, 2
  %mul3 = mul nsw i32 %add, %add2
  ret i32 %mul3
}
