Skip to content
  1. Aug 17, 2005
  2. Aug 16, 2005
  3. Aug 15, 2005
  4. Aug 14, 2005
    • Nate Begeman's avatar
      Fix last night's PPC32 regressions by · d5e739dc
      Nate Begeman authored
      1. Not selecting the false value of a select_cc in the false arm, which
         isn't legal for nested selects.
      2. Actually returning the node we created and Legalized in the FP_TO_UINT
         Expander.
      
      llvm-svn: 22789
      d5e739dc
    • Nate Begeman's avatar
      Fix last night's X86 regressions by putting code for SSE in the if(SSE) · e5394d45
      Nate Begeman authored
      block.  nur.
      
      llvm-svn: 22788
      e5394d45
    • Andrew Lenharth's avatar
      only build .a on alpha · ed072338
      Andrew Lenharth authored
      llvm-svn: 22787
      ed072338
    • Nate Begeman's avatar
      Fix FP_TO_UINT with Scalar SSE2 now that the legalizer can handle it. We · 4d959f66
      Nate Begeman authored
      now generate the relatively good code sequences:
      unsigned short foo(float a) { return a; }
      _foo:
              movss 4(%esp), %xmm0
              cvttss2si %xmm0, %eax
              movzwl %ax, %eax
              ret
      
      and
      unsigned bar(float a) { return a; }
      _bar:
              movss .CPI_bar_0, %xmm0
              movss 4(%esp), %xmm1
              movapd %xmm1, %xmm2
              subss %xmm0, %xmm2
              cvttss2si %xmm2, %eax
              xorl $-2147483648, %eax
              cvttss2si %xmm1, %ecx
              ucomiss %xmm0, %xmm1
              cmovb %ecx, %eax
              ret
      
      llvm-svn: 22786
      4d959f66
    • Nate Begeman's avatar
      Teach the legalizer how to legalize FP_TO_UINT. · 36853ee1
      Nate Begeman authored
      Teach the legalizer to promote FP_TO_UINT to FP_TO_SINT if the wider
        FP_TO_UINT is also illegal.  This allows us on PPC to codegen
        unsigned short foo(float a) { return a; }
      
      as:
      _foo:
      .LBB_foo_0:     ; entry
              fctiwz f0, f1
              stfd f0, -8(r1)
              lwz r2, -4(r1)
              rlwinm r3, r2, 0, 16, 31
              blr
      
      instead of:
      _foo:
      .LBB_foo_0:     ; entry
              fctiwz f0, f1
              stfd f0, -8(r1)
              lwz r2, -4(r1)
              lis r3, ha16(.CPI_foo_0)
              lfs f0, lo16(.CPI_foo_0)(r3)
              fcmpu cr0, f1, f0
              blt .LBB_foo_2  ; entry
      .LBB_foo_1:     ; entry
              fsubs f0, f1, f0
              fctiwz f0, f0
              stfd f0, -16(r1)
              lwz r2, -12(r1)
              xoris r2, r2, 32768
      .LBB_foo_2:     ; entry
              rlwinm r3, r2, 0, 16, 31
              blr
      
      llvm-svn: 22785
      36853ee1
    • Nate Begeman's avatar
      Make FP_TO_UINT Illegal. This allows us to generate significantly better · 83f6b98c
      Nate Begeman authored
      codegen for FP_TO_UINT by using the legalizer's SELECT variant.
      
      Implement a codegen improvement for SELECT_CC, selecting the false node in
      the MBB that feeds the phi node.  This allows us to codegen:
      void foo(int *a, int b, int c) { int d = (a < b) ? 5 : 9; *a = d; }
      as:
      _foo:
              li r2, 5
              cmpw cr0, r4, r3
              bgt .LBB_foo_2  ; entry
      .LBB_foo_1:     ; entry
              li r2, 9
      .LBB_foo_2:     ; entry
              stw r2, 0(r3)
              blr
      
      insted of:
      _foo:
              li r2, 5
              li r5, 9
              cmpw cr0, r4, r3
              bgt .LBB_foo_2  ; entry
      .LBB_foo_1:     ; entry
              or r2, r5, r5
      .LBB_foo_2:     ; entry
              stw r2, 0(r3)
              blr
      
      llvm-svn: 22784
      83f6b98c
  5. Aug 13, 2005
Loading