{
  "asm": [
    {
      "source": null,
      "text": "; Listing generated by Microsoft (R) Optimizing Compiler Version 19.15.26504.0 "
    },
    {
      "source": null,
      "text": ""
    },
    {
      "source": null,
      "text": "\tTTL\tC:\\Source\\compiler-explorer\\test\\cases\\arm-moose-example.cpp"
    },
    {
      "source": null,
      "text": "\tTHUMB"
    },
    {
      "source": null,
      "text": "\t.drectve"
    },
    {
      "source": null,
      "text": "\tDCB\t\"-defaultlib:LIBCMT \""
    },
    {
      "source": null,
      "text": "\tDCB\t\"-defaultlib:OLDNAMES \""
    },
    {
      "source": null,
      "text": ""
    },
    {
      "source": null,
      "text": "\tEXPORT\t|moose|"
    },
    {
      "source": null,
      "text": ";\tCOMDAT .pdata"
    },
    {
      "source": null,
      "text": ".pdata\tSEGMENT"
    },
    {
      "source": null,
      "text": "|$pdata1$moose| DCD imagerel |moose|"
    },
    {
      "source": null,
      "text": "\tDCD\t0xfd1160d5"
    },
    {
      "source": null,
      "text": "; Function compile flags: /Ogtpy"
    },
    {
      "source": null,
      "text": ";\tCOMDAT moose"
    },
    {
      "source": null,
      "text": ".text$mn\tSEGMENT"
    },
    {
      "source": null,
      "text": ""
    },
    {
      "source": null,
      "text": "|moose|\tPROC"
    },
    {
      "source": null,
      "text": "; File c:\\source\\compiler-explorer\\test\\cases\\arm-moose-example.cpp"
    },
    {
      "source": null,
      "text": "; Line 9"
    },
    {
      "source": null,
      "text": "\tpush        {r3-r5,lr}"
    },
    {
      "source": null,
      "text": "|$M22|"
    },
    {
      "source": null,
      "text": "\tmov         r5,r0"
    },
    {
      "source": null,
      "text": "; Line 10"
    },
    {
      "source": null,
      "text": "\tmovs        r0,#1"
    },
    {
      "source": null,
      "text": "\tmovs        r4,#0"
    },
    {
      "source": null,
      "text": "\tvdup.32     q10,r5"
    },
    {
      "source": null,
      "text": "; Line 12"
    },
    {
      "source": null,
      "text": "\tcmp         r1,#0"
    },
    {
      "source": null,
      "text": "\tble         |$LN18@moose|"
    },
    {
      "source": null,
      "text": "\tcmp         r1,#8"
    },
    {
      "source": null,
      "text": "\tbcc         |$LN11@moose|"
    },
    {
      "source": null,
      "text": "; Line 10"
    },
    {
      "source": null,
      "text": "\tasrs        r3,r1,#2"
    },
    {
      "source": null,
      "text": "\tadd         r3,r1,r3,lsr #0x1D"
    },
    {
      "source": null,
      "text": "\tasrs        r3,r3,#3"
    },
    {
      "source": null,
      "text": "\tsub         r3,r1,r3,lsl #3"
    },
    {
      "source": null,
      "text": "\tvmov.i64    q8,#0"
    },
    {
      "source": null,
      "text": "\tsubs        r3,r1,r3"
    },
    {
      "source": null,
      "text": "\tvmov        q9,q8"
    },
    {
      "source": null,
      "text": "\tvmul.i32    q10,q10,q10"
    },
    {
      "source": null,
      "text": "|$LL4@moose|"
    },
    {
      "source": null,
      "text": "; Line 12"
    },
    {
      "source": null,
      "text": "\tadds        r4,r4,#8"
    },
    {
      "source": null,
      "text": "\tcmp         r4,r3"
    },
    {
      "source": null,
      "text": "; Line 13"
    },
    {
      "source": null,
      "text": "\tvadd.i32    q8,q10,q8"
    },
    {
      "source": null,
      "text": "\tvadd.i32    q9,q10,q9"
    },
    {
      "source": null,
      "text": "\tblt         |$LL4@moose|"
    },
    {
      "source": null,
      "text": "; Line 10"
    },
    {
      "source": null,
      "text": "\tvadd.i32    q8,q9,q8"
    },
    {
      "source": null,
      "text": "\tvmov.32     r2,d17[1]"
    },
    {
      "source": null,
      "text": "\tvmov.32     r3,d17[0]"
    },
    {
      "source": null,
      "text": "\tadd         r2,r2,r3"
    },
    {
      "source": null,
      "text": "\tvmov.32     r3,d16[1]"
    },
    {
      "source": null,
      "text": "\tadd         r2,r2,r3"
    },
    {
      "source": null,
      "text": "\tvmov.32     r3,d16[0]"
    },
    {
      "source": null,
      "text": "\tadd         r3,r3,r2"
    },
    {
      "source": null,
      "text": "\tadds        r0,r3,#1"
    },
    {
      "source": null,
      "text": "|$LN11@moose|"
    },
    {
      "source": null,
      "text": "; Line 12"
    },
    {
      "source": null,
      "text": "\tcmp         r4,r1"
    },
    {
      "source": null,
      "text": "\tbge         |$LN17@moose|"
    },
    {
      "source": null,
      "text": "\tsubs        r3,r1,r4"
    },
    {
      "source": null,
      "text": "\tmul         r3,r3,r5"
    },
    {
      "source": null,
      "text": "\tmla         r0,r3,r5,r0"
    },
    {
      "source": null,
      "text": "|$LN17@moose|"
    },
    {
      "source": null,
      "text": "|$M20|"
    },
    {
      "source": null,
      "text": "; Line 16"
    },
    {
      "source": null,
      "text": "\tpop         {r3-r5,pc}"
    },
    {
      "source": null,
      "text": "|$LN18@moose|"
    },
    {
      "source": null,
      "text": "|$M21|"
    },
    {
      "source": null,
      "text": "\tpop         {r3-r5,pc}"
    },
    {
      "source": null,
      "text": "|$M23|"
    },
    {
      "source": null,
      "text": ""
    },
    {
      "source": null,
      "text": "\tENDP  ; |moose|"
    },
    {
      "source": null,
      "text": ""
    },
    {
      "source": null,
      "text": "; Function compile flags: /Ogtpy"
    },
    {
      "source": null,
      "text": ";\tCOMDAT thing"
    },
    {
      "source": null,
      "text": ".text$mn\tSEGMENT"
    },
    {
      "source": null,
      "text": ""
    },
    {
      "source": null,
      "text": "|thing|\tPROC"
    },
    {
      "source": null,
      "text": "; File c:\\source\\compiler-explorer\\test\\cases\\arm-moose-example.cpp"
    },
    {
      "source": null,
      "text": "; Line 7"
    },
    {
      "source": null,
      "text": "\tmul         r0,r0,r0"
    },
    {
      "source": null,
      "text": "|$M4|"
    },
    {
      "source": null,
      "text": "\tbx          lr"
    },
    {
      "source": null,
      "text": ""
    },
    {
      "source": null,
      "text": "\tENDP  ; |thing|"
    },
    {
      "source": null,
      "text": ""
    },
    {
      "source": null,
      "text": "\tEND"
    },
    {
      "source": null,
      "text": ""
    }
  ]
}
