{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/16903","repository_url":"https://api.github.com/repos/dotnet/coreclr","labels_url":"https://api.github.com/repos/dotnet/coreclr/issues/16903/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/coreclr/issues/16903/comments","events_url":"https://api.github.com/repos/dotnet/coreclr/issues/16903/events","html_url":"https://github.com/dotnet/coreclr/pull/16903","id":304647563,"number":16903,"title":" Implement AVX/AVX2 Insert/ExtractVector128 intrinsic and AVX Insert/Extract helpers","user":{"login":"fiigii","id":1263030,"avatar_url":"https://avatars1.githubusercontent.com/u/1263030?v=4","gravatar_id":"","url":"https://api.github.com/users/fiigii","html_url":"https://github.com/fiigii","followers_url":"https://api.github.com/users/fiigii/followers","following_url":"https://api.github.com/users/fiigii/following{/other_user}","gists_url":"https://api.github.com/users/fiigii/gists{/gist_id}","starred_url":"https://api.github.com/users/fiigii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fiigii/subscriptions","organizations_url":"https://api.github.com/users/fiigii/orgs","repos_url":"https://api.github.com/users/fiigii/repos","events_url":"https://api.github.com/users/fiigii/events{/privacy}","received_events_url":"https://api.github.com/users/fiigii/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-03-13T06:55:11Z","updated_at":"2018-03-14T00:23:31Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/dotnet/coreclr/pulls/16903","html_url":"https://github.com/dotnet/coreclr/pull/16903","diff_url":"https://github.com/dotnet/coreclr/pull/16903.diff","patch_url":"https://github.com/dotnet/coreclr/pull/16903.patch"},"body":"@tannergooding @CarolEidt PTAL"},"comment":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/comments/372863842","html_url":"https://github.com/dotnet/coreclr/pull/16903#issuecomment-372863842","issue_url":"https://api.github.com/repos/dotnet/coreclr/issues/16903","id":372863842,"user":{"login":"fiigii","id":1263030,"avatar_url":"https://avatars1.githubusercontent.com/u/1263030?v=4","gravatar_id":"","url":"https://api.github.com/users/fiigii","html_url":"https://github.com/fiigii","followers_url":"https://api.github.com/users/fiigii/followers","following_url":"https://api.github.com/users/fiigii/following{/other_user}","gists_url":"https://api.github.com/users/fiigii/gists{/gist_id}","starred_url":"https://api.github.com/users/fiigii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fiigii/subscriptions","organizations_url":"https://api.github.com/users/fiigii/orgs","repos_url":"https://api.github.com/users/fiigii/repos","events_url":"https://api.github.com/users/fiigii/events{/privacy}","received_events_url":"https://api.github.com/users/fiigii/received_events","type":"User","site_admin":false},"created_at":"2018-03-14T00:23:31Z","updated_at":"2018-03-14T00:23:31Z","author_association":"COLLABORATOR","body":"Codegen of the caller:\r\n```asm\r\nIN0004: 000013 call     JIT.HardwareIntrinsics.X86.SimpleUnaryOpTest__DataTable`2[Int32,Int32][System.Int32,System.Int32]:get_inArrayPtr():long:this\r\nIN0005: 000018 vmovupd  ymm0, ymmword ptr[rax]\r\nIN0006: 00001D vmovupd  ymmword ptr[V06 rsp+20H], ymm0\r\nIN0007: 000024 lea      rcx, bword ptr [V06 rsp+20H]\r\nIN0008: 000029 mov      edx, 1\r\nIN0009: 00002E call     System.Runtime.Intrinsics.X86.Avx:Extract(struct,ubyte):int\r\nIN000a: 000033 mov      ebx, eax\r\nIN000b: 000035 mov      rcx, rdi\r\nIN000c: 000038 call     JIT.HardwareIntrinsics.X86.SimpleUnaryOpTest__DataTable`2[Int32,Int32][System.Int32,System.Int32]:get_outArrayPtr():long:this\r\n```\r\n\r\nCodegen of `Avx.Extract` (callee)\r\n```asm\r\nIN0033: 000000 push     rbp\r\nIN0034: 000001 sub      rsp, 144\r\nIN0035: 000008 vzeroupper \r\nIN0036: 00000B lea      rbp, [rsp+90H]\r\nIN0037: 000013 mov      bword ptr [V00 rbp+10H], rcx\r\nIN0038: 000017 mov      dword ptr [V01 rbp+18H], edx\r\n\r\nG_M55727_IG02:        ; offs=00001AH, size=000EH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz\r\n\r\nIN0001: 00001A cmp      dword ptr [(reloc 0x7ffc43f515a0)], 0\r\nIN0002: 000021 je       SHORT G_M55727_IG03\r\nIN0003: 000023 call     CORINFO_HELP_DBG_IS_JUST_MY_CODE\r\n\r\nG_M55727_IG03:        ; offs=000028H, size=006BH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz\r\n\r\nIN0004: 000028 nop      \r\nIN0005: 000029 mov      ecx, dword ptr [V01 rbp+18H]\r\nIN0006: 00002C movzx    rcx, cl\r\nIN0007: 00002F and      ecx, 3\r\nIN0008: 000032 mov      byte  ptr [V01 rbp+18H], cl\r\nIN0009: 000035 mov      ecx, dword ptr [V01 rbp+18H]\r\nIN000a: 000038 movzx    rcx, cl\r\nIN000b: 00003B cmp      ecx, 1\r\nIN000c: 00003E setg     cl\r\nIN000d: 000041 movzx    rcx, cl\r\nIN000e: 000044 mov      dword ptr [V02 rbp-04H], ecx\r\nIN000f: 000047 cmp      dword ptr [V02 rbp-04H], 0\r\nIN0010: 00004B je       SHORT G_M55727_IG04\r\nIN0011: 00004D nop      \r\nIN0012: 00004E mov      rcx, bword ptr [V00 rbp+10H]\r\nIN0013: 000052 vmovupd  ymm0, ymmword ptr[rcx]\r\nIN0014: 000057 vextractf128 ymm0, ymm0, 1\r\nIN0015: 00005D vmovapd  xmmword ptr [V06 rbp-40H], xmm0\r\nIN0016: 000063 vmovapd  xmm0, xmmword ptr [V06 rbp-40H]\r\nIN0017: 000069 vmovapd  xmmword ptr [V08 rbp-60H], xmm0\r\nIN0018: 00006F lea      rcx, bword ptr [V08 rbp-60H]\r\nIN0019: 000073 mov      edx, dword ptr [V01 rbp+18H]\r\nIN001a: 000076 movzx    rdx, dl\r\nIN001b: 000079 add      edx, -2\r\nIN001c: 00007C movzx    rdx, dl\r\nIN001d: 00007F call     System.Runtime.Intrinsics.X86.Sse41:Extract(struct,ubyte):long\r\nIN001e: 000084 mov      qword ptr [V07 rbp-48H], rax\r\nIN001f: 000088 mov      rcx, qword ptr [V07 rbp-48H]\r\nIN0020: 00008C mov      qword ptr [V03 rbp-10H], rcx\r\nIN0021: 000090 nop      \r\nIN0022: 000091 jmp      SHORT G_M55727_IG05\r\n\r\nG_M55727_IG04:        ; offs=000093H, size=003AH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz\r\n\r\nIN0023: 000093 nop      \r\nIN0024: 000094 mov      rcx, bword ptr [V00 rbp+10H]\r\nIN0025: 000098 vmovupd  ymm0, ymmword ptr[rcx]\r\nIN0026: 00009D vmovapd  xmmword ptr [V04 rbp-20H], xmm0\r\nIN0027: 0000A3 vmovapd  xmm0, xmmword ptr [V04 rbp-20H]\r\nIN0028: 0000A9 vmovapd  xmmword ptr [V09 rbp-70H], xmm0\r\nIN0029: 0000AF lea      rcx, bword ptr [V09 rbp-70H]\r\nIN002a: 0000B3 mov      edx, dword ptr [V01 rbp+18H]\r\nIN002b: 0000B6 movzx    rdx, dl\r\nIN002c: 0000B9 call     System.Runtime.Intrinsics.X86.Sse41:Extract(struct,ubyte):long\r\nIN002d: 0000BE mov      qword ptr [V05 rbp-28H], rax\r\nIN002e: 0000C2 mov      rax, qword ptr [V05 rbp-28H]\r\nIN002f: 0000C6 mov      qword ptr [V03 rbp-10H], rax\r\nIN0030: 0000CA nop      \r\nIN0031: 0000CB jmp      SHORT G_M55727_IG05\r\n\r\nG_M55727_IG05:        ; offs=0000CDH, size=0004H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref\r\n\r\nIN0032: 0000CD mov      rax, qword ptr [V03 rbp-10H]\r\n\r\nG_M55727_IG06:        ; offs=0000D1H, size=0009H, epilog, nogc, emitadd\r\n\r\nIN0039: 0000D1 vzeroupper \r\nIN003a: 0000D4 lea      rsp, [rbp]\r\nIN003b: 0000D8 pop      rbp\r\nIN003c: 0000D9 ret      \r\n\r\n```"}}
{"actor":{"display_login":"fiigii"}}