[llvm-commits] [llvm] r115473 - in /llvm/trunk: include/llvm/IntrinsicsX86.td lib/Target/X86/X86InstrMMX.td test/MC/X86/x86-32.s

Rafael Espindola espindola at google.com
Sun Oct 3 12:56:30 PDT 2010


I think this broke
CodeGen/X86/mmx-builtins.ll

On 3 October 2010 15:09, Chris Lattner <sabre at nondot.org> wrote:
> Author: lattner
> Date: Sun Oct  3 14:09:13 2010
> New Revision: 115473
>
> URL: http://llvm.org/viewvc/llvm-project?rev=115473&view=rev
> Log:
> the immediate field of pshufw is actually an 8-bit field, not a 8-bit field that is sign extended.  This fixes PR8288
>
> Modified:
>    llvm/trunk/include/llvm/IntrinsicsX86.td
>    llvm/trunk/lib/Target/X86/X86InstrMMX.td
>    llvm/trunk/test/MC/X86/x86-32.s
>
> Modified: llvm/trunk/include/llvm/IntrinsicsX86.td
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IntrinsicsX86.td?rev=115473&r1=115472&r2=115473&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/IntrinsicsX86.td (original)
> +++ llvm/trunk/include/llvm/IntrinsicsX86.td Sun Oct  3 14:09:13 2010
> @@ -631,7 +631,7 @@
>               Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty,
>                          llvm_v16i8_ty], [IntrNoMem]>;
>   def int_x86_ssse3_pshuf_w         : GCCBuiltin<"__builtin_ia32_pshufw">,
> -              Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_i32_ty],
> +              Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_i8_ty],
>                          [IntrNoMem]>;
>  }
>
>
> Modified: llvm/trunk/lib/Target/X86/X86InstrMMX.td
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrMMX.td?rev=115473&r1=115472&r2=115473&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86InstrMMX.td (original)
> +++ llvm/trunk/lib/Target/X86/X86InstrMMX.td Sun Oct  3 14:09:13 2010
> @@ -339,12 +339,12 @@
>  defm MMX_PSHUFB : SS3I_binop_rm_int_mm<0x00, "pshufb", int_x86_ssse3_pshuf_b>;
>
>  def MMX_PSHUFWri : MMXIi8<0x70, MRMSrcReg,
> -                          (outs VR64:$dst), (ins VR64:$src1, i32i8imm:$src2),
> +                          (outs VR64:$dst), (ins VR64:$src1, i8imm:$src2),
>                           "pshufw\t{$src2, $src1, $dst|$dst, $src1, $src2}",
>                           [(set VR64:$dst,
>                              (int_x86_ssse3_pshuf_w VR64:$src1, imm:$src2))]>;
>  def MMX_PSHUFWmi : MMXIi8<0x70, MRMSrcMem,
> -                          (outs VR64:$dst), (ins i64mem:$src1, i32i8imm:$src2),
> +                          (outs VR64:$dst), (ins i64mem:$src1, i8imm:$src2),
>                           "pshufw\t{$src2, $src1, $dst|$dst, $src1, $src2}",
>                           [(set VR64:$dst,
>                              (int_x86_ssse3_pshuf_w (load_mmx addr:$src1),
>
> Modified: llvm/trunk/test/MC/X86/x86-32.s
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/x86-32.s?rev=115473&r1=115472&r2=115473&view=diff
> ==============================================================================
> --- llvm/trunk/test/MC/X86/x86-32.s (original)
> +++ llvm/trunk/test/MC/X86/x86-32.s Sun Oct  3 14:09:13 2010
> @@ -585,3 +585,8 @@
>
>  // CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e]
>  pshufw $14, %mm4, %mm0
> +
> +// CHECK: pshufw $90, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x5a]
> +// PR8288
> +pshufw $90, %mm4, %mm0
> +
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>



-- 
Rafael Ávila de Espíndola




More information about the llvm-commits mailing list