Use intrinsic pattern to make a simpler match
authorSanjay Patel <spatel@rotateright.com>
Thu, 7 May 2015 16:51:12 +0000 (16:51 +0000)
committerSanjay Patel <spatel@rotateright.com>
Thu, 7 May 2015 16:51:12 +0000 (16:51 +0000)
This is a follow-on to r236740 where I took Andrea's advice
in D9504 to remove a redundant pattern...except that I removed
the wrong pattern!

AFAICT, there is no change in the final code produced because
subsequent passes would clean up the extra instructions created
by the more complicated pattern.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236743 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrSSE.td

index 4113aaa1fd25264a74e0ebb03f177089b7662193..d255fad6c1512289cab132222953880e75f46397 100644 (file)
@@ -3411,9 +3411,8 @@ multiclass avx_fp_unop_s<bits<8> opc, string OpcodeStr, RegisterClass RC,
                                   mem_cpat:$src)>;
 
    def : Pat<(Intr VR128:$src),
-             (vt (COPY_TO_REGCLASS(
-             !cast<Instruction>("V"#NAME#Suffix##r) (ScalarVT (IMPLICIT_DEF)),
-                    (ScalarVT (COPY_TO_REGCLASS VR128:$src, RC))), VR128))>;
+             (!cast<Instruction>("V"#NAME#Suffix##r_Int) (vt (IMPLICIT_DEF)),
+                                 VR128:$src)>;
 
    def : Pat<(Intr mem_cpat:$src),
              (!cast<Instruction>("V"#NAME#Suffix##m_Int)