Skip to content
  1. Feb 28, 2017
  2. Feb 27, 2017
  3. Feb 23, 2017
  4. Feb 22, 2017
  5. Feb 10, 2017
  6. Feb 02, 2017
    • Matt Arsenault's avatar
      AMDGPU: Use source modifiers with f16->f32 conversions · 9dba9bd4
      Matt Arsenault authored
      The operand types were defined to fit the fp16_to_fp node, which
      has the half as an integer type. v_cvt_f32_f16 does support
      source modifiers, so change this to have an FP type and modifiers.
      
      For targets without legal f16, this requires recognizing the
      bit operations and trying to produce them.
      
      llvm-svn: 293857
      9dba9bd4
  7. Jan 31, 2017
  8. Jan 30, 2017
  9. Jan 17, 2017
  10. Jan 11, 2017
  11. Dec 27, 2016
  12. Dec 23, 2016
  13. Dec 20, 2016
  14. Dec 15, 2016
  15. Dec 14, 2016
  16. Dec 10, 2016
    • Matt Arsenault's avatar
      AMDGPU: Fix handling of 16-bit immediates · 4bd72361
      Matt Arsenault authored
      Since 32-bit instructions with 32-bit input immediate behavior
      are used to materialize 16-bit constants in 32-bit registers
      for 16-bit instructions, determining the legality based
      on the size is incorrect. Change operands to have the size
      specified in the type.
      
      Also adds a workaround for a disassembler bug that
      produces an immediate MCOperand for an operand that
      is supposed to be OPERAND_REGISTER.
      
      The assembler appears to accept out of bounds immediates and
      truncates them, but this seems to be an issue for 32-bit
      already.
      
      llvm-svn: 289306
      4bd72361
  17. Dec 05, 2016
    • Matt Arsenault's avatar
      AMDGPU: Assembler support for exp · bf6bdac1
      Matt Arsenault authored
      compr is not currently parsed (or printed) correctly,
      but that should probably be fixed along with
      intrinsic changes.
      
      llvm-svn: 288698
      bf6bdac1
    • Matt Arsenault's avatar
      AMDGPU: Change how exp is printed · 8a63cb90
      Matt Arsenault authored
      This is an improvement over a long list of unreadable numbers.
      A follow up patch will try to match how sc formats these.
      
      llvm-svn: 288697
      8a63cb90
    • Matt Arsenault's avatar
      AMDGPU: Refactor exp instructions · 7bee6ac7
      Matt Arsenault authored
      Structure the definitions a bit more like the other classes.
      
      The main change here is to split EXP with the done bit set
      to a separate opcode, so we can set mayLoad = 1 so that it won't
      be reordered before the other exp stores, since this has the special
      constraint that if the done bit is set then this should be the last
      exp in she shader.
      
      Previously all exp instructions were inferred to have unmodeled
      side effects.
      
      llvm-svn: 288695
      7bee6ac7
  18. Nov 18, 2016
  19. Nov 15, 2016
  20. Nov 13, 2016
  21. Nov 10, 2016
  22. Nov 04, 2016
  23. Nov 03, 2016
  24. Nov 01, 2016
    • Matt Arsenault's avatar
      AMDGPU: Default to using scalar mov to materialize immediate · 3d463193
      Matt Arsenault authored
      This is the conservatively correct way because it's easy to
      move or replace a scalar immediate. This was incorrect in the case
      when the register class wasn't known from the static instruction
      definition, but still needed to be an SGPR. The main example of this
      is inlineasm has an SGPR constraint.
      
      Also start verifying the register classes of inlineasm operands.
      
      llvm-svn: 285762
      3d463193
  25. Oct 28, 2016
    • Matt Arsenault's avatar
      AMDGPU: Rename glc operand type · 4b6a6cc8
      Matt Arsenault authored
      While trying to add the glc bit to SMEM instructions on VI
      with the new refactoring I ran into some kind of shadowing
      problem for the glc operand when using the pseudoinstruction
      as a multiclass parameter.
      
      Everywhere that currently uses it defines the operand to have the same
      name as its type, i.e. glc:$glc which works. For some reason now it
      conflicts, and its up evaluating to the wrong thing. For the
      real encoding classes,
      
      let Inst{16} = !if(ps.has_glc, glc, ?); was not being evaluated
      and still visible in the Inst initializer in the expanded td file.
      In other cases I got a a different error about an illegal operand
      where this was using { 0 } initializer from the bits<1> glc initializer
      instead of evaluating it as false in the if.
      
      For consistency all of the operand types should probably
      be captialized to avoid conflicting with the variable names
      unless somebody has a better idea of how to fix this.
      
      llvm-svn: 285462
      4b6a6cc8
  26. Oct 14, 2016
  27. Oct 06, 2016
  28. Sep 26, 2016
  29. Sep 23, 2016
Loading