[PATCH] D38668: [X86] Do not generate __multi3 for mul i128 on X86

Riyaz V Puthiyapurayil via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Oct 15 11:32:17 PDT 2017


RVP updated this revision to Diff 119088.
RVP edited the summary of this revision.
RVP added a comment.

A. The test libcall-sret.ll was updated to use udiv instead of mul because mul no longer generates the  libcall required by the test.
B. Updated the checks in other tests that were previously generating __multi3. Since some of these tests generate a lot of instructions which are hard to verify manually.
Hence the following semi-automatic method was used:

1. Used llc to generate .o from each of the above tests.
2. Created hundreds of random test vectors of 128, 256, 512, 1024 bits wide. Used 'bc' tool produce expected output. Truncated the output of bc to appropriate width.
3. Created a test program to read the random vectors into appropriately sized arrays.
4. Invoked the corresponding function from the .o created in step 1.
5. Compared the output of test in step 4 against the output produced in step 2.


https://reviews.llvm.org/D38668

Files:
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/X86/libcall-sret.ll
  test/CodeGen/X86/mul-i1024.ll
  test/CodeGen/X86/mul-i256.ll
  test/CodeGen/X86/mul-i512.ll
  test/CodeGen/X86/mul128.ll
  test/CodeGen/X86/overflow.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38668.119088.patch
Type: text/x-patch
Size: 605141 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171015/80165a9c/attachment-0001.bin>


More information about the llvm-commits mailing list