Page MenuHomePhabricator

Please use GitHub pull requests for new patches. Phabricator shutdown timeline

tim.schmielau (Tim Schmielau)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 7 2022, 12:01 PM (90 w, 8 h)

Recent Activity

Aug 11 2023

tim.schmielau abandoned D134732: fix vectorization of library calls.

Superseded by D156478.

Aug 11 2023, 5:30 AM · Restricted Project, Restricted Project

Apr 30 2023

tim.schmielau added a comment to D149456: Basic documentation of -mrecip=... option.

Thank you Craig.
Can someone with commit access please land the patch for me? Thanks!

Apr 30 2023, 9:46 AM · Restricted Project, Restricted Project

Apr 28 2023

tim.schmielau added a reviewer for D149456: Basic documentation of -mrecip=... option: craig.topper.
Apr 28 2023, 8:59 AM · Restricted Project, Restricted Project
tim.schmielau added reviewers for D149456: Basic documentation of -mrecip=... option: spatel, hfinkel.
Apr 28 2023, 8:49 AM · Restricted Project, Restricted Project
tim.schmielau requested review of D149456: Basic documentation of -mrecip=... option.
Apr 28 2023, 8:45 AM · Restricted Project, Restricted Project

Sep 29 2022

tim.schmielau added a comment to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.

The glibc Bugzilla ticket probably makes the best reading so far: https://sourceware.org/bugzilla/show_bug.cgi?id=20024

Sep 29 2022, 10:49 AM · Restricted Project, Restricted Project
tim.schmielau added a comment to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.

Here is the discussion that lead up to the glibc / libmvec commit linked above: https://marc.info/?t=146472287500003

Sep 29 2022, 10:35 AM · Restricted Project, Restricted Project
tim.schmielau added a comment to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.

I'm struggling to find much documentation for libmvec other than the VectorABI.txt you mentioned - do you happen to know where we can review a reference header or source code please? I've tried searching by there's plenty of libs out there with similar names....

I'm still not sure the vector-of-pointers pattern what we want to support tbh

Sep 29 2022, 10:17 AM · Restricted Project, Restricted Project
tim.schmielau added inline comments to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.
Sep 29 2022, 8:46 AM · Restricted Project, Restricted Project
tim.schmielau added a comment to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.

The failing LLVM.Transforms/LoopVectorize/AArch64::scalable-call.ll test makes me wonder what the exact semantics of the vector-function-abi-variant call attribute is in the presence of pointer arguments.

Sep 29 2022, 8:05 AM · Restricted Project, Restricted Project
tim.schmielau updated the diff for D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.

Reset parent to reflect reviewer comment there (removing duplicate call && test).

Sep 29 2022, 7:58 AM · Restricted Project, Restricted Project
tim.schmielau updated the diff for D134732: fix vectorization of library calls.

Re-uploading once again. arc diff --preview creates a preview that looks correct, but just arc diff is somehow mixing in the other patch I currently have open on top of this one.

Sep 29 2022, 5:08 AM · Restricted Project, Restricted Project
tim.schmielau updated the diff for D134732: fix vectorization of library calls.

Re-uploading patch after follow-on patch got mixed in

Sep 29 2022, 5:03 AM · Restricted Project, Restricted Project

Sep 28 2022

tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.

Add tests using #pragma clang loop vectorize(...).

Sep 28 2022, 9:48 AM · Restricted Project
tim.schmielau added inline comments to D134732: fix vectorization of library calls.
Sep 28 2022, 7:05 AM · Restricted Project, Restricted Project
tim.schmielau updated the diff for D134732: fix vectorization of library calls.
  • Remove duplicate checks
Sep 28 2022, 7:03 AM · Restricted Project, Restricted Project
tim.schmielau updated the diff for D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.

To finally get this out of the way without having the necessary analysis available, I am retreating a bit and just allow forced auto-vectorization via #pragma clang loop vectorize(assume_safety).

Sep 28 2022, 6:07 AM · Restricted Project, Restricted Project

Sep 27 2022

tim.schmielau added a comment to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.

It's been a while since I last looked at this. However there don't seem to be many users of -fveclib=libmvec in general as demonstrated by the fact that it has been broken since before I've submitted this patch.
Before returning to allowing sincos() vectorization, I've thus submitted a separate patch to reenable vectorization of all other functions declared in VecFuncs.def already: D134732.

Sep 27 2022, 5:28 AM · Restricted Project, Restricted Project
tim.schmielau added reviewers for D134732: fix vectorization of library calls: venkataramanan.kumar.llvm, abique, fpetrogalli, rengolin, spatel, fhahn, jdoerfert, RKSimon.
Sep 27 2022, 5:21 AM · Restricted Project, Restricted Project
tim.schmielau requested review of D134732: fix vectorization of library calls.
Sep 27 2022, 5:19 AM · Restricted Project, Restricted Project

May 17 2022

Herald added a project to D103695: [WIP][RFC][Utils] Helper script to check sanity of cost tables vs scheduler models: Restricted Project.
May 17 2022, 9:19 AM · Restricted Project, Restricted Project
Herald added a project to D46276: [CostModel][X86] Derive TTI costs from complete scheduling models (PR36550) (RFC): Restricted Project.
May 17 2022, 9:19 AM · Restricted Project

Apr 21 2022

Herald added a project to D53035: [LV] Legalize SVML call instructions during vector code generation: Restricted Project.
Apr 21 2022, 10:53 PM · Restricted Project, Restricted Project
Herald added a reviewer for D54412: [RFC] Re-implementing -fveclib with OpenMP: jdoerfert.
Apr 21 2022, 10:50 PM · Restricted Project

Apr 20 2022

Herald added a project to D116426: [InferAttrs] Add writeonly to all the math functions: Restricted Project.
Apr 20 2022, 9:07 AM · Restricted Project, Restricted Project

Apr 14 2022

Herald added a project to D57504: RFC: Prototype & Roadmap for vector predication in LLVM: Restricted Project.
Apr 14 2022, 5:47 AM · Restricted Project, Restricted Project

Mar 14 2022

tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
  • at newlines at end of file where missing
Mar 14 2022, 6:28 AM · Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
  • increase nest count
  • add nounroll sincos() tests
  • make sincos test fail reliably even in single precision
  • protect against wrongly computed reference results by printing a few values
Mar 14 2022, 6:23 AM · Restricted Project

Mar 6 2022

tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
  • compute reference result in long double
Mar 6 2022, 9:48 AM · Restricted Project
tim.schmielau updated the summary of D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
Mar 6 2022, 5:11 AM · Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
  • run tests in both single and double precision
Mar 6 2022, 1:56 AM · Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
  • run libmvec tests for each supported ISA
  • don't depend on immintrin.h
Mar 6 2022, 1:37 AM · Restricted Project

Mar 4 2022

tim.schmielau added inline comments to D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
Mar 4 2022, 11:48 PM · Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
  • handle 32 bit pointer size
Mar 4 2022, 11:45 PM · Restricted Project
tim.schmielau updated the summary of D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
Mar 4 2022, 10:41 AM · Restricted Project
tim.schmielau added inline comments to D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
Mar 4 2022, 10:12 AM · Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
  • check for AVX2, not SSE2
Mar 4 2022, 10:03 AM · Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.

Add check that libmvec is available for linking and at runtime
and rename Libmvec/ directory to Veclib/ to indicate the test is
not specific to libmvec and might be enabled for other vector
libraries as well.

Mar 4 2022, 9:36 AM · Restricted Project
tim.schmielau planned changes to D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.

Are you talking about automatically choosing a vector library (-fveclib)?

Mar 4 2022, 2:38 AM · Restricted Project
tim.schmielau added a comment to D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.

Even if we run the test unconditionally, some logic will still be required to select the right flags to enable auto-vectorization.

Mar 4 2022, 2:21 AM · Restricted Project
tim.schmielau added a comment to D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.

I am not sure if it should be Libmvec or X86 specific though. There are other vector libraries on different platforms that provide vector versions of sincos. I don't think we should exclude those from this testing here.

Mar 4 2022, 2:13 AM · Restricted Project
tim.schmielau edited reviewers for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation, added: venkataramanan.kumar.llvm, abique, fpetrogalli, spatel, fhahn, jdoerfert; removed: dmgreen, Matt, pengfei, ye-luo.
Mar 4 2022, 1:34 AM · Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.

my previous update seems to have eaten the original changes.
Let's see if I can get this right.

Mar 4 2022, 1:11 AM · Restricted Project
Herald added a project to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec: Restricted Project.

I have just submitted the test for the testsuite. Once that is merged, this change should also be fine to go in.

Mar 4 2022, 1:08 AM · Restricted Project, Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.

fix mixed up comments

Mar 4 2022, 12:53 AM · Restricted Project
tim.schmielau abandoned D120978: fix mixed up comments.

This was supposed to update https://reviews.llvm.org/D120977 instead of creating a new submission.

Mar 4 2022, 12:50 AM · Restricted Project
tim.schmielau requested review of D120978: fix mixed up comments.
Mar 4 2022, 12:48 AM · Restricted Project
tim.schmielau added reviewers for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation: rengolin, dmgreen, Matt, pengfei, RKSimon, ye-luo.
Mar 4 2022, 12:42 AM · Restricted Project
tim.schmielau requested review of D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
Mar 4 2022, 12:39 AM · Restricted Project

Jan 12 2022

tim.schmielau planned changes to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.

And a variant of the code above shows that even the transformation to the vvv variant isn't safe in all cases.
I am looking into adding variations of the code above into the test-suite ahead of enabling the vectorizing transformation, to be sure the transformation is not applied when unsafe, and that the behavior of the underlying vector library matches my interpretation of the VectorAPI.
I don't see any existing tests around the transformations already performed.
Also, I see lots of regression tests to prevent potential performance regressions, ensuring the vectorizing transformation is not missed. But I don't see any tests currently to guard against correctness issues, ensuring the transformation is not applied in unsafe cases.

Jan 12 2022, 2:11 AM · Restricted Project, Restricted Project

Jan 10 2022

tim.schmielau added a comment to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.

I have beefed up my testcase to demonstrate why I had to choose the _ZGVdN4vvv_sincos() variant for correctness, even though _ZGVdN4vl8l8_sincos() would be desirable from a performance perspective:
We have no control over what pointers the user is passing in in different loop iterations.

Jan 10 2022, 12:37 PM · Restricted Project, Restricted Project
tim.schmielau added inline comments to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.
Jan 10 2022, 12:36 PM · Restricted Project, Restricted Project

Jan 9 2022

tim.schmielau added inline comments to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.
Jan 9 2022, 6:43 PM · Restricted Project, Restricted Project
tim.schmielau added a reviewer for D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec: jdoerfert.
Jan 9 2022, 1:40 PM · Restricted Project, Restricted Project
tim.schmielau added a comment to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.

Thank you.
I do not have commit access anyway, so can someone please commit once review is sufficient.

Jan 9 2022, 10:45 AM · Restricted Project, Restricted Project
tim.schmielau added a comment to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.

A potential issue is that working sincos() support in libmvec is "only" a bit over 5 years old.
E.g. a user on Centos 7 compiling code with a vectorizable call to sincos() and compiling with -fveclib=libmvec and -O2 or higher will now run into an undefined reference to the vectorized sincos() function and will either have to deactivate auto-vectorization or update their libmvec.

Jan 9 2022, 2:16 AM · Restricted Project, Restricted Project
tim.schmielau updated the summary of D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.
Jan 9 2022, 1:15 AM · Restricted Project, Restricted Project
tim.schmielau added a comment to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.

I haven't figured out how to link to https://bugs.llvm.org/show_bug.cgi?id=51530 so that it would automatically get closed on merging. I suppose this isn't possible anymore with bugzilla being frozen?

Jan 9 2022, 1:13 AM · Restricted Project, Restricted Project
tim.schmielau added a comment to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.

In line with existing behavior, I have not added vector function definitions for AVX-512.

Jan 9 2022, 1:10 AM · Restricted Project, Restricted Project
tim.schmielau added a comment to D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.

Of the two reproducers linked in https://bugs.llvm.org/show_bug.cgi?id=51530, the sincos_simd.cpp now auto-vectorizes when compiling with clang++ -fveclib=libmvec -O2 -march=core-avx2 sincos_simd.cpp, even when the #pragma omp simd annotation is left out in the source.

Jan 9 2022, 12:53 AM · Restricted Project, Restricted Project
tim.schmielau updated the summary of D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.
Jan 9 2022, 12:46 AM · Restricted Project, Restricted Project
tim.schmielau added reviewers for D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec: venkataramanan.kumar.llvm, abique, fpetrogalli, rengolin, spatel, fhahn.

Adding reviewers who commented on D88154.

Jan 9 2022, 12:34 AM · Restricted Project, Restricted Project
tim.schmielau requested review of D116879: [llvm] Allow forced auto-vectorization of sincos() using libmvec.
Jan 9 2022, 12:29 AM · Restricted Project, Restricted Project

Jan 8 2022

tim.schmielau added a comment to D32280: TableGen: Add support of Intrinsics with multiple returns.

This is my first activity on reviews.llvm.org, so I might just be lacking suitable permissions - I still don't see any way to close.
Thanks!
Tim

Jan 8 2022, 2:09 AM · Restricted Project

Jan 7 2022

tim.schmielau added a comment to D32280: TableGen: Add support of Intrinsics with multiple returns.

I tried to mark this patch as a duplicate of the merged https://reviews.llvm.org/D32888 and ideally close it as such, but could not figure out how.

Jan 7 2022, 12:18 PM · Restricted Project