Skip to content
Snippets Groups Projects
  1. Dec 31, 2017
  2. Dec 30, 2017
  3. Dec 29, 2017
  4. Dec 27, 2017
    • Coby Tayree's avatar
      [x86][icelake][vbmi2] · 7e0bf617
      Coby Tayree authored
      added vbmi2 feature recognition
      added intrinsics support for vbmi2 instructions
      _mm[128,256,512]_mask[z]_compress_epi[16,32]
      _mm[128,256,512]_mask_compressstoreu_epi[16,32]
      _mm[128,256,512]_mask[z]_expand_epi[16,32]
      _mm[128,256,512]_mask[z]_expandloadu_epi[16,32]
      _mm[128,256,512]_mask[z]_sh[l,r]di_epi[16,32,64]
      _mm[128,256,512]_mask_sh[l,r]dv_epi[16,32,64]
      matching a similar work on the backend (D40206)
      Differential Revision: https://reviews.llvm.org/D41557
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@321487 91177308-0d34-0410-b5e6-96231b3b80d8
      7e0bf617
    • Coby Tayree's avatar
      [x86][icelake][vnni] · cd1ee449
      Coby Tayree authored
      added vnni feature recognition
      added intrinsics support for VNNI instructions
      _mm256_mask_dpbusd_epi32
      _mm256_maskz_dpbusd_epi32
      _mm256_dpbusd_epi32
      _mm256_mask_dpbusds_epi32
      _mm256_maskz_dpbusds_epi32
      _mm256_dpbusds_epi32
      _mm256_mask_dpwssd_epi32
      _mm256_maskz_dpwssd_epi32
      _mm256_dpwssd_epi32
      _mm256_mask_dpwssds_epi32
      _mm256_maskz_dpwssds_epi32
      _mm256_dpwssds_epi32
      _mm128_mask_dpbusd_epi32
      _mm128_maskz_dpbusd_epi32
      _mm128_dpbusd_epi32
      _mm128_mask_dpbusds_epi32
      _mm128_maskz_dpbusds_epi32
      _mm128_dpbusds_epi32
      _mm128_mask_dpwssd_epi32
      _mm128_maskz_dpwssd_epi32
      _mm128_dpwssd_epi32
      _mm128_mask_dpwssds_epi32
      _mm128_maskz_dpwssds_epi32
      _mm128_dpwssds_epi32
      _mm512_mask_dpbusd_epi32
      _mm512_maskz_dpbusd_epi32
      _mm512_dpbusd_epi32
      _mm512_mask_dpbusds_epi32
      _mm512_maskz_dpbusds_epi32
      _mm512_dpbusds_epi32
      _mm512_mask_dpwssd_epi32
      _mm512_maskz_dpwssd_epi32
      _mm512_dpwssd_epi32
      _mm512_mask_dpwssds_epi32
      _mm512_maskz_dpwssds_epi32
      _mm512_dpwssds_epi32
      matching a similar work on the backend (D40208)
      Differential Revision: https://reviews.llvm.org/D41558
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@321484 91177308-0d34-0410-b5e6-96231b3b80d8
      cd1ee449
    • Coby Tayree's avatar
      [x86][icelake][bitalg] · 8b794e9e
      Coby Tayree authored
      added bitalg feature recognition
      added intrinsics support for bitalg instructions
      _mm512_popcnt_epi16
      _mm512_mask_popcnt_epi16
      _mm512_maskz_popcnt_epi16
      _mm512_popcnt_epi8
      _mm512_mask_popcnt_epi8
      _mm512_maskz_popcnt_epi8
      _mm512_mask_bitshuffle_epi64_mask
      _mm512_bitshuffle_epi64_mask
      _mm256_popcnt_epi16
      _mm256_mask_popcnt_epi16
      _mm256_maskz_popcnt_epi16
      _mm128_popcnt_epi16
      _mm128_mask_popcnt_epi16
      _mm128_maskz_popcnt_epi16
      _mm256_popcnt_epi8
      _mm256_mask_popcnt_epi8
      _mm256_maskz_popcnt_epi8
      _mm128_popcnt_epi8
      _mm128_mask_popcnt_epi8
      _mm128_maskz_popcnt_epi8
      _mm256_mask_bitshuffle_epi32_mask
      _mm256_bitshuffle_epi32_mask
      _mm128_mask_bitshuffle_epi16_mask
      _mm128_bitshuffle_epi16_mask
      matching a similar work on the backend (D40222)
      Differential Revision: https://reviews.llvm.org/D41564
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@321483 91177308-0d34-0410-b5e6-96231b3b80d8
      8b794e9e
    • Coby Tayree's avatar
      [x86][icelake][vpclmulqdq] · 74bc9cb6
      Coby Tayree authored
      added vpclmulqdq feature recognition
      added intrinsics support for vpclmulqdq instructions
        _mm256_clmulepi64_epi128
        _mm512_clmulepi64_epi128
      matching a similar work on the backend (D40101)
      Differential Revision: https://reviews.llvm.org/D41573
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@321480 91177308-0d34-0410-b5e6-96231b3b80d8
      74bc9cb6
    • Coby Tayree's avatar
      [x86][icelake][gfni] · 0a839f84
      Coby Tayree authored
      added gfni feature recognition
      added intrinsics support for gfni instructions
        _mm_gf2p8affineinv_epi64_epi8
        _mm_mask_gf2p8affineinv_epi64_epi8
        _mm_maskz_gf2p8affineinv_epi64_epi8
        _mm256_gf2p8affineinv_epi64_epi8
        _mm256_mask_gf2p8affineinv_epi64_epi8
        _mm256_maskz_gf2p8affineinv_epi64_epi8
        _mm512_gf2p8affineinv_epi64_epi8
        _mm512_mask_gf2p8affineinv_epi64_epi8
        _mm512_maskz_gf2p8affineinv_epi64_epi8
        _mm_gf2p8affine_epi64_epi8
        _mm_mask_gf2p8affine_epi64_epi8
        _mm_maskz_gf2p8affine_epi64_epi8
        _mm256_gf2p8affine_epi64_epi8
        _mm256_mask_gf2p8affine_epi64_epi8
        _mm256_maskz_gf2p8affine_epi64_epi8
        _mm512_gf2p8affine_epi64_epi8
        _mm512_mask_gf2p8affine_epi64_epi8
        _mm512_maskz_gf2p8affine_epi64_epi8
        _mm_gf2p8mul_epi8
        _mm_mask_gf2p8mul_epi8
        _mm_maskz_gf2p8mul_epi8
        _mm256_gf2p8mul_epi8
        _mm256_mask_gf2p8mul_epi8
        _mm256_maskz_gf2p8mul_epi8
        _mm512_gf2p8mul_epi8
        _mm512_mask_gf2p8mul_epi8
        _mm512_maskz_gf2p8mul_epi8
      matching a similar work on the backend (D40373)
      Differential Revision: https://reviews.llvm.org/D41582
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@321477 91177308-0d34-0410-b5e6-96231b3b80d8
      0a839f84
    • Coby Tayree's avatar
      [x86][icelake][vaes] · fbe12368
      Coby Tayree authored
      added vaes feature recognition
      added intrinsics support for vaes instructions, matching a similar work on the backend (D40078)
        _mm256_aesenc_epi128
        _mm512_aesenc_epi128
        _mm256_aesenclast_epi128
        _mm512_aesenclast_epi128
        _mm256_aesdec_epi128
        _mm512_aesdec_epi128
        _mm256_aesdeclast_epi128
        _mm512_aesdeclast_epi128
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@321474 91177308-0d34-0410-b5e6-96231b3b80d8
      fbe12368
  5. Dec 25, 2017
  6. Dec 24, 2017
  7. Dec 23, 2017
  8. Dec 22, 2017
  9. Dec 21, 2017
  10. Dec 20, 2017
  11. Dec 18, 2017
  12. Dec 16, 2017
    • Sanjay Patel's avatar
      [Driver, CodeGen] pass through and apply -fassociative-math · 8e9263d3
      Sanjay Patel authored
      There are 2 parts to getting the -fassociative-math command-line flag translated to LLVM FMF:
      
      1. In the driver/frontend, we accept the flag and its 'no' inverse and deal with the 
         interactions with other flags like -ffast-math -fno-signed-zeros -fno-trapping-math. 
         This was mostly already done - we just need to translate the flag as a codegen option. 
         The test file is complicated because there are many potential combinations of flags here.
         Note that we are matching gcc's behavior that requires 'nsz' and no-trapping-math.
      
      2. In codegen, we map the codegen option to FMF in the IR builder. This is simple code and 
         corresponding test.
      
      For the motivating example from PR27372:
      
      float foo(float a, float x) { return ((a + x) - x); }
      
      $ ./clang -O2 27372.c -S -o - -ffast-math  -fno-associative-math -emit-llvm  | egrep 'fadd|fsub'
        %add = fadd nnan ninf nsz arcp contract float %0, %1
        %sub = fsub nnan ninf nsz arcp contract float %add, %2
      
      So 'reassoc' is off as expected (and so is the new 'afn' but that's a different patch). 
      This case now works as expected end-to-end although the underlying logic is still wrong:
      
      $ ./clang  -O2 27372.c -S -o - -ffast-math  -fno-associative-math | grep xmm
      	addss	%xmm1, %xmm0
      	subss	%xmm1, %xmm0
      
      We're not done because the case where 'reassoc' is set is ignored by optimizer passes. Example:
      
      $ ./clang  -O2 27372.c -S -o - -fassociative-math -fno-signed-zeros -fno-trapping-math -emit-llvm  | grep fadd
        %add = fadd reassoc float %0, %1
      
      $ ./clang -O2  27372.c -S -o - -fassociative-math -fno-signed-zeros -fno-trapping-math | grep xmm
      	addss	%xmm1, %xmm0
      	subss	%xmm1, %xmm0
      
      Differential Revision: https://reviews.llvm.org/D39812
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@320920 91177308-0d34-0410-b5e6-96231b3b80d8
      8e9263d3
    • Craig Topper's avatar
      [X86] Add builtins and tests for 128 and 256 bit vpopcntdq. · c6aa3927
      Craig Topper authored
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@320915 91177308-0d34-0410-b5e6-96231b3b80d8
      c6aa3927
    • Hal Finkel's avatar
      [VerifyDiagnosticConsumer] support -verify=<prefixes> · c29edbf9
      Hal Finkel authored
      This mimics FileCheck's --check-prefixes option.
      
      The default prefix is "expected". That is, "-verify" is equivalent to
      "-verify=expected".
      
      The goal is to permit exercising a single test suite source file with different
      compiler options producing different sets of diagnostics.  While cpp can be
      combined with the existing -verify to accomplish the same goal, source is often
      easier to maintain when it's not cluttered with preprocessor directives or
      duplicate passages of code. For example, this patch also rewrites some existing
      clang tests to demonstrate the benefit of this feature.
      
      Patch by Joel E. Denny, thanks!
      
      Differential Revision: https://reviews.llvm.org/D39694
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@320908 91177308-0d34-0410-b5e6-96231b3b80d8
      c29edbf9
    • Hal Finkel's avatar
      [TextDiagnosticBuffer] Fix diagnostic note emission order · ab88c4b2
      Hal Finkel authored
      The frontend currently groups diagnostics from the command line according to
      diagnostic level, but that places all notes last. Fix that by emitting such
      diagnostics in the order they were generated.
      
      Patch by Joel E. Denny, thanks!
      
      Differential Revision: https://reviews.llvm.org/D40995
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@320904 91177308-0d34-0410-b5e6-96231b3b80d8
      ab88c4b2
Loading