{"push_id":1243117689,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"b2b81546f16d58d0e935011783be50204adab5b2","before":"4ef967dc6f23a15ba3bdc562815af0b1dad3e7ca","commits":[{"sha":"b2b81546f16d58d0e935011783be50204adab5b2","author":{"name":"Chandler Carruth","email":"f202c0deeaccee703d9195ab786f78f6938b11a3@gmail.com"},"message":"[x86] Fix a really nasty bug introduced in r276417 where alignment\nconstraints were added to _mm256_broadcast_{pd,ps} intel intrinsics.\n\nThe spec for these intrinics is ... pretty much silent on alignment.\nThis is especially frustrating considering the amount of discussion of\nalignment in the load and store instrinsics. So I was forced to rely on\nthe specification for the VBROADCASTF128 instruction.\n\nThat instruction's spec is *also* completely silent on alignment.\nFortunately, when it comes to the instruction's spec, silence is enough.\nThere is no #GP fault option for an underaligned address so this\ninstruction, and by inference the intrinsic, can read any alignment.\n\nAs it happens, the old code worked exactly this way and in fact we have\nplenty of code that hands pointers with less than 16-byte alignment to\nthese intrinsics. This code broke pretty spectacularly with this commit.\n\nFortunately, the fix is super simple! Change a 16 to a 1, and ta da!\n\nAnyways, a lot of debugging for a really boring fix. =]","distinct":true,"url":"https://api.github.com/repos/llvm-project/llvm-project-submodule/commits/b2b81546f16d58d0e935011783be50204adab5b2"}]}
{"actor":{"display_login":"chapuni"}}