This is a combination of 125 commits.

  The first commit's message is:

    Initial skeleton of SIMD128 support

  This is the 2nd commit message:

    Add float32x4.zero and uint32x4.bool constructors

  This is the 3rd commit message:

    Add design document

  This is the 4th commit message:

    Make x64.release.check and ia32.release.check 100% pass

  This is the 5th commit message:

    Add float32x4 constructor

  This is the 6th commit message:

    Disable simd_object option by default in d8

  This is the 7th commit message:

    Make float32x4.zero constructor work

  This is the 8th commit message:

    Implement uint32x4 constructor, bool constructor and getters.

    TEST=mjsunit/simd/uint32x4

  This is the 9th commit message:

    Enable type checking for float32x4

  This is the 10th commit message:

    Add TODOs

  This is the 11th commit message:

    Add toString and NonNumberToNumber for float32x4

  This is the 12th commit message:

    convert the line ending of uint32x4.js to Unix style

  This is the 13th commit message:

    Use NumberToUint32 in Runtime_CreateUint32x4

  This is the 14th commit message:

    fix the missing part of uint32x4 in types.[h|cc]

  This is the 15th commit message:

    Use NumberFromUint32 which handles both smi and heap number properly

  This is the 16th commit message:

    Make CallIC work for float32x4

  This is the 17th commit message:

    Make SIMD.add work

  This is the 18th commit message:

    Implement type checking for uint32x4

  This is the 19th commit message:

    Port the typeof and CallIC for IA32

  This is the 20th commit message:

    Make CallIC work for uint32x4

  This is the 21st commit message:

    Implement CallIC for uint32x4 for ia32

  This is the 22nd commit message:

    Add SIMD abs, neg, sub, mul and div

  This is the 23rd commit message:

    Add HType and Representation for float32x4 and uint32x4

  This is the 24th commit message:

    Implement SIMD.clamp

  This is the 25th commit message:

    Implement SIMD.min and SIMD.max

  This is the 26th commit message:

    Implement SIMD.reciprocal and SIMD.reciprocalSqrt

  This is the 27th commit message:

    Implement SIMD.scale

  This is the 28th commit message:

    Implement SIMD.sqrt

  This is the 29th commit message:

    Implement SIMD.shuffle

  This is the 30th commit message:

    Inline SIMD.abs in Crankshaft

  This is the 31st commit message:

    Implement SIMD.withX, SIMD.withY, SIMD.withZ and SIMD.withW

  This is the 32nd commit message:

    Implement SIMD.bitsToFloat32x4, SIMD.bitsToUint32x4, SIMD.toFloat32x4 and SIMD.toUint32x4

  This is the 33rd commit message:

    Implement SIMD comparisons

    SIMD.lessThan
    SIMD.lessThanOrEqual
    SIMD.equal
    SIMD.notEqual
    SIMD.greaterThan
    SIMD.greaterThanOrEqual

  This is the 34th commit message:

    Implement SIMD logical operations

    SIMD.and
    SIMD.or
    SIMD.xor
    SIMD.negu32

    and

    uint32x4.flagX
    uint32x4.flagY
    uint32x4.flagZ
    uint32x4.flagW

  This is the 35th commit message:

    Implement SIMD.select

  This is the 36th commit message:

    Implement SIMD uint32x4 setters

    SIMD.withXu32
    SIMD.withYu32
    SIMD.withZu32
    SIMD.withWu32

    SIMD.withFlagX
    SIMD.withFlagY
    SIMD.withFlagZ
    SIMD.withFlagW

  This is the 37th commit message:

    Implement SIMD uint32x4 math

    SIMD.addu32
    SIMD.subu32
    SIMD.mulu32

  This is the 38th commit message:

    Implement Uint32x4 and Float32x4 splat constructor

  This is the 39th commit message:

    Implement signMask getter of Float32x4 and Uint32x4

  This is the 40th commit message:

    Fix the SIMD ops cannot accept newed object issue.

    Use "%_ValueOf(arg)" instead of "_ValueOf(arg)" for TO_FLOAT32x4 and TO_UINT32x4

  This is the 41st commit message:

    Fix lint error

  This is the 42nd commit message:

    Add DeoptimizeIf to DoTaggedToFloat32x4

    For the SIMD.abs, if the argument is from "new float32x4", we deoptimize
    and let full codegen handle it. We could revisit this later, currently
    it is consistent with how Math deals with arguments from "new Number".

  This is the 43rd commit message:

    Fix "make x64.debug.check -j8"

  This is the 44th commit message:

    Rebased with 88f5dd928e58464284d5d54c2c96fa411ab81950

  This is the 45th commit message:

    Use the right movq instruction for absps

  This is the 46th commit message:

    Update design document

  This is the 47th commit message:

    Fixed ia32 build failures

    Port "Inline SIMD.abs in Crankshaft" to ia32

  This is the 48th commit message:

    Start adding XMM_REGISTER and XMM_STACK_SLOT into Lithium X64

  This is the 49th commit message:

    Add XMM register and XMM StackSlot into register allocator for X64

      1) Add RegisterKind into live range so that we know the live range
    will be assigned to general, double or XMM.
      2) When spilling, get the spilling stack slot location with live
    ranges' RegisterKind.
      3) Add reusable_xmm_slots_ and xmm_artificial_registers_.
      4) Add XMM register and stack slot into gap-resolver.

  This is the 50th commit message:

    Rename XMM to Float32x4 for the Crankshaft inlining and register allocation

  This is the 51st commit message:

    Add float32x4 into deoptimization process

  This is the 52nd commit message:

    Assign the right spilling slot for float32x4 register

  This is the 53rd commit message:

    Add two TODOs

  This is the 54th commit message:

    Finished previous two TODOs

    save/restore the whole 128bit XMM register instead of the low 64 bits

  This is the 55th commit message:

    Added test case to test SIMD deoptimization

  This is the 56th commit message:

    Add OSR test case for SIMD.abs

  This is the 57th commit message:

    move deopt case from float32x4.js to deopt.js

  This is the 58th commit message:

    Inline SIMD.add

  This is the 59th commit message:

    Fixed a typo in reg allocator

  This is the 60th commit message:

    Implement Float32x4Array

  This is the 61st commit message:

    Add DeferredCalling to Float32x4ToTagged and fix C++ lint errors

  This is the 62nd commit message:

    Minor refactoring

  This is the 63rd commit message:

    Add optional_rex_32 into movups

  This is the 64th commit message:

    Add normal array of float32x4 test case.

  This is the 65th commit message:

    Refactoring: use name Float32x4Array consistantly.

  This is the 66th commit message:

    Fix C++ lint error and make GetNextSpillIndex better for X64

  This is the 67th commit message:

    Ported reg allocator/deopt/osr to IA32

    Misc:
     Fix a typo in testSIMDAdd test case
     Add EXTERNAL_FLOAT32x4_ELEMENTS to make ia32 compile after Float32x4Array

    TODO: enable Float32x4Array in IA32

  This is the 68th commit message:

    Fixed Float32x4Array testcase failures on IA32

  This is the 69th commit message:

    Fix index register issue of Float32x4 load and store

  This is the 70th commit message:

    Do not RemovePointer when cur_op is Float32x4 or Float32x4StackSlot

  This is the 71st commit message:

    Refactor deferred_objects_double_values_ a little in the deoptimization

  This is the 72nd commit message:

    Materialize all float32x4 values required for arguments/captured objects

  This is the 73rd commit message:

    IA32: Port dd0e376440ec143411f4762c54f2bfa5ce6c7ddd

  This is the 74th commit message:

    Move the Float32x4Array behind --simd_object flag.

  This is the 75th commit message:

    Fix the ident of dabd1a5219bd852a1209459f03926ec20f619202

  This is the 76th commit message:

    Add getAt and setAt function to Float32x4Array

  This is the 77th commit message:

    Inline Float32x4Array.getAt and Float32x4Array.setAt

  This is the 78th commit message:

    Inline SIMD.select operation and add Uint32x4 implementation everywhere after Float32x4

  This is the 79th commit message:

    Inline SIMD.sub

  This is the 80th commit message:

    Inline SIMD.mul

  This is the 81st commit message:

    Inline SIMD.and

  This is the 82nd commit message:

    Port below commits to IA32

      Inline SIMD.mul
      Inline SIMD.sub
      Inline SIMD.select operation and add Uint32x4 implementation everywhere after Float32x4

  This is the 83rd commit message:

    Inline SIMD.addu32

  This is the 84th commit message:

    Add toString to uint32x4 object

  This is the 85th commit message:

    Refactor UnarySIMDOperation

  This is the 86th commit message:

    Refactor BinarySIMDOperation

  This is the 87th commit message:

    Remove two TODOs from simd128.js

  This is the 88th commit message:

    Inline all SIMD ps comparison instruction

  This is the 89th commit message:

    Re-implement float32x4.zero and float32x4.splat and uint32x4.bool and uint32x4.splat

  This is the 90th commit message:

    Inline float32x4.splat

  This is the 91st commit message:

    Inline uint32x4.splat

  This is the 92nd commit message:

    Inline float32x4 and uint32x4 Constructor

  This is the 93rd commit message:

    Refactor TernarySIMDOperation

  This is the 94th commit message:

    Fix debug assertion from lithium gap resolver

  This is the 95th commit message:

    Inline X, Y, Z, W and signMask properties of Float32x4 and Uint32x4

  This is the 96th commit message:

    Inline float32x4.zero

  This is the 97th commit message:

    Refined SplatConstructor code gen

  This is the 98th commit message:

    Inline SIMD.neg

  This is the 99th commit message:

    Move float32x4 and uint32x4 constructor id into
    EXPERIMENTAL_SIMD_FUNCTIONS_WITH_FAKE_ID_LIST

  This is the 100th commit message:

    Inline SIMD.div

  This is the 101st commit message:

    Inlined flagX/flagY/flagW/flagZ property and refactor X/Y/Z/W property

  This is the 102nd commit message:

    Inline SIMD.clamp

  This is the 103rd commit message:

    Inline SIMD.min and SIMD.max

  This is the 104th commit message:

    Inlined SIMD object property

  This is the 105th commit message:

    Refine SIMD property inline

  This is the 106th commit message:

    Implement Uint32x4Array

  This is the 107th commit message:

    Do not do ToNumber for Uint32x4 object when setting external array element

  This is the 108th commit message:

    Inline SIMD.reciprocal

  This is the 109th commit message:

    Inline SIMD.reciprocalSqrt

  This is the 110th commit message:

    Inlined SIMD withX/Y/Z/W and Xu32/Yu32/Zu32/Wu32

  This is the 111th commit message:

    Inline SIMD.sqrt

  This is the 112th commit message:

    Inline SIMD.scale

  This is the 113th commit message:

    Inline SIMD.bitsToFloat32x4 and SIMD.bitsToUint32x4

  This is the 114th commit message:

    Inline SIMD.toFloat32x4 and SIMD.toUint32x4

  This is the 115th commit message:

    Add and inline SIMD.shuffleu32

  This is the 116th commit message:

    Inline SIMD.or and SIMD.xor

  This is the 117th commit message:

    Refined generated instructions of SIMD.withXu32/Yu32/Zu32/Wu32

  This is the 118th commit message:

    Fix SIMD.shuffleu32: use pshufd instead of shufps

  This is the 119th commit message:

    Fix SIMD.shuffleu32 implementation

  This is the 120th commit message:

    Inline SIMD.subu32 and SIMD.mulu32

  This is the 121st commit message:

    Inline SIMD.negu32

  This is the 122nd commit message:

    Deoptimize when SIMD.shuffle/shuffleu32 meet non-constant selector

  This is the 123rd commit message:

    Finish the unimplementation part which depends on SSE4_1

  This is the 124th commit message:

    Fixed mandelbrot.js sanityCheck error

  This is the 125th commit message:

    Remove unnecessary new from uint32x4.js

================================================================================

This is a combination of 31 commits.
  The first commit's message is:
    Fix a typo in the register allocator

  This is the 2nd commit message:

    Enable hinting Float32x4Register and Uint32x4Register

  This is the 3rd commit message:

    Make Float32x4 and Uint32x4 LOperand equal if their index equals

  This is the 4th commit message:

    Pick up doc folder

  This is the 5th commit message:

    Rebase with r17295 and r17318

  This is the 6th commit message:

    Add Float32x4 and Uint32x4 into ReceiverToObjectIfRequired

  This is the 7th commit message:

    Inline SIMD.withFlagX/Y/Z/W

  This is the 8th commit message:

    Inline uint32x4.bool

  This is the 9th commit message:

    Check float32x4 or uint32x4 prototype map before inlining float32x4 or uint32x4 getters

  This is the 10th commit message:

    Check float32x4 or uint32x4 prototype map dynamically and add test case

  This is the 11th commit message:

    Add test case for an captured object with float32x4 or uint32x4 field

  This is the 12th commit message:

    Add test case for an argument object with float32x4 or uint32x4 field

  This is the 13th commit message:

    Introduce Float32x4OrUint32x4Change instruction to deal with
    representation change when one operand is float32x4 or uint32x4 and the
    other operand is not tagged. Currently we deoptimize unconditionally
    when such situation happens.

  This is the 14th commit message:

    Enable SMID.shuffleMix

  This is the 15th commit message:

    Rename uint32x4 to int32x4 and Uint32x4Array to Int32x4Array

  This is the 16th commit message:

    Refactor SIMD API into SIMD.float32x4 and SIMD.int32x4 buckets

  This is the 17th commit message:

    Optimize SIMD object layout

  This is the 18th commit message:

    Update TODO.txt

  This is the 19th commit message:

    Add SIMD.int32x4.not and fix SIMD.int32x4.neg

  This is the 20th commit message:

    Remove prefix when converting between float32x4 and int32x4

  This is the 21st commit message:

    Implement int32x4.mul with SSE2 for x64

    Add punpackldq, psrldq and pmuludq assember and disassembler of x64

  This is the 22nd commit message:

    Make ia32.release and ia32.debug compile

  This is the 23rd commit message:

    Check SSE2 before generating SIMD IR

  This is the 24th commit message:

    Add SSE instruction to IA32

  This is the 25th commit message:

    Turn on IA32 backend for SIMD

    ia32.release has 5 failures

  This is the 26th commit message:

    Load and store Float32x4Array or Int32x4Array elements without SSE2

    To verify:
    make ia32.debug.check TESTFLAGS="mjsunit/simd --extra-flags=--noenable_sse2"

  This is the 27th commit message:

    Do not assign environment to Float32x4Array/Int32x4Array load

  This is the 28th commit message:

    Add disassembly output for SSE instruction in IA32

  This is the 29th commit message:

    Not set uint32 flag for int32x4 x/y/z/w

  This is the 30th commit message:

    Fixed IA32 failures

  This is the 31st commit message:

    Remove un-necessary movsxlq

========================================================================
  This is the 2nd commit message:

    Introduce int32x4.zero constructor

    fix rebase 7d2159cb516fdd052f3664e24918b3d54f97420b
Inlined SIMD.int32x4.not
Add SIMD.int32x4.equal
Add SIMD.int32x4 shift operation
Update TODOs list
Add SIMD.int32x4.lessThan/greaterThan
Add bit operations on float32x4
Temporarily enable running all SIMD applications by specifying the
SIMD.float32x4 is float32x4.
Move constructors into SIMD