Re: r246223 - [X86][3DNow] Added debug codegen test for 3DNow! intrinsics

2015-08-28 Thread Simon Pilgrim via cfe-commits
Thanks for the heads up Renato. I've a candidate fix (it was missing 
REQUIRES: x86-registered-target) and will commit it later and keep an 
extra eye on the non-x86 buildbots.


On 28/08/2015 20:41, Renato Golin wrote:

And finally this one in r246323.

Please, move all those tests to an X86 specific area and check the
AArch64 bots after commit to make sure it passes.

You probably didn't get the email because the bot was broken when you
committed, then all your other commits were breaking a broken bot. :)

cheers,
--renato

On 27 August 2015 at 23:18, Simon Pilgrim via cfe-commits
cfe-commits@lists.llvm.org wrote:

Author: rksimon
Date: Thu Aug 27 17:18:09 2015
New Revision: 246223

URL: http://llvm.org/viewvc/llvm-project?rev=246223view=rev
Log:
[X86][3DNow] Added debug codegen test for 3DNow! intrinsics

Part of PR24590

Modified:
 cfe/trunk/test/CodeGen/3dnow-builtins.c

Modified: cfe/trunk/test/CodeGen/3dnow-builtins.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/3dnow-builtins.c?rev=246223r1=246222r2=246223view=diff
==
--- cfe/trunk/test/CodeGen/3dnow-builtins.c (original)
+++ cfe/trunk/test/CodeGen/3dnow-builtins.c Thu Aug 27 17:18:09 2015
@@ -1,4 +1,5 @@
-// RUN: %clang_cc1 %s -O3 -triple=x86_64-unknown-unknown -target-feature 
+3dnow -emit-llvm -o - | FileCheck %s
+// RUN: %clang_cc1 %s -O0 -triple=x86_64-unknown-unknown -target-feature 
+3dnow -emit-llvm -o - -Werror | FileCheck %s
+// RUN: %clang_cc1 %s -O0 -triple=x86_64-unknown-unknown -target-feature 
+3dnow -S -o - -Werror | FileCheck %s --check-prefix=CHECK-ASM

  // Don't include mm_malloc.h, it's system specific.
  #define __MM_MALLOC_H
@@ -8,108 +9,126 @@
  __m64 test_m_pavgusb(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pavgusb
// CHECK: @llvm.x86.3dnow.pavgusb
+  // CHECK-ASM: pavgusb %mm{{.*}}, %mm{{.*}}
return _m_pavgusb(m1, m2);
  }

  __m64 test_m_pf2id(__m64 m) {
// CHECK-LABEL: define i64 @test_m_pf2id
// CHECK: @llvm.x86.3dnow.pf2id
+  // CHECK-ASM: pf2id %mm{{.*}}, %mm{{.*}}
return _m_pf2id(m);
  }

  __m64 test_m_pfacc(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfacc
// CHECK: @llvm.x86.3dnow.pfacc
+  // CHECK-ASM: pfacc %mm{{.*}}, %mm{{.*}}
return _m_pfacc(m1, m2);
  }

  __m64 test_m_pfadd(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfadd
// CHECK: @llvm.x86.3dnow.pfadd
+  // CHECK-ASM: pfadd %mm{{.*}}, %mm{{.*}}
return _m_pfadd(m1, m2);
  }

  __m64 test_m_pfcmpeq(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfcmpeq
// CHECK: @llvm.x86.3dnow.pfcmpeq
+  // CHECK-ASM: pfcmpeq %mm{{.*}}, %mm{{.*}}
return _m_pfcmpeq(m1, m2);
  }

  __m64 test_m_pfcmpge(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfcmpge
// CHECK: @llvm.x86.3dnow.pfcmpge
+  // CHECK-ASM: pfcmpge %mm{{.*}}, %mm{{.*}}
return _m_pfcmpge(m1, m2);
  }

  __m64 test_m_pfcmpgt(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfcmpgt
// CHECK: @llvm.x86.3dnow.pfcmpgt
+  // CHECK-ASM: pfcmpgt %mm{{.*}}, %mm{{.*}}
return _m_pfcmpgt(m1, m2);
  }

  __m64 test_m_pfmax(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfmax
// CHECK: @llvm.x86.3dnow.pfmax
+  // CHECK-ASM: pfmax %mm{{.*}}, %mm{{.*}}
return _m_pfmax(m1, m2);
  }

  __m64 test_m_pfmin(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfmin
// CHECK: @llvm.x86.3dnow.pfmin
+  // CHECK-ASM: pfmin %mm{{.*}}, %mm{{.*}}
return _m_pfmin(m1, m2);
  }

  __m64 test_m_pfmul(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfmul
// CHECK: @llvm.x86.3dnow.pfmul
+  // CHECK-ASM: pfmul %mm{{.*}}, %mm{{.*}}
return _m_pfmul(m1, m2);
  }

  __m64 test_m_pfrcp(__m64 m) {
// CHECK-LABEL: define i64 @test_m_pfrcp
// CHECK: @llvm.x86.3dnow.pfrcp
+  // CHECK-ASM: pfrcp %mm{{.*}}, %mm{{.*}}
return _m_pfrcp(m);
  }

  __m64 test_m_pfrcpit1(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfrcpit1
// CHECK: @llvm.x86.3dnow.pfrcpit1
+  // CHECK-ASM: pfrcpit1 %mm{{.*}}, %mm{{.*}}
return _m_pfrcpit1(m1, m2);
  }

  __m64 test_m_pfrcpit2(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfrcpit2
// CHECK: @llvm.x86.3dnow.pfrcpit2
+  // CHECK-ASM: pfrcpit2 %mm{{.*}}, %mm{{.*}}
return _m_pfrcpit2(m1, m2);
  }

  __m64 test_m_pfrsqrt(__m64 m) {
// CHECK-LABEL: define i64 @test_m_pfrsqrt
// CHECK: @llvm.x86.3dnow.pfrsqrt
+  // CHECK-ASM: pfrsqrt %mm{{.*}}, %mm{{.*}}
return _m_pfrsqrt(m);
  }

  __m64 test_m_pfrsqrtit1(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfrsqrtit1
// CHECK: @llvm.x86.3dnow.pfrsqit1
+  // CHECK-ASM: pfrsqit1 %mm{{.*}}, %mm{{.*}}
return _m_pfrsqrtit1(m1, m2);
  }

  __m64 test_m_pfsub(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfsub
// CHECK: @llvm.x86.3dnow.pfsub
+  // CHECK-ASM: pfsub %mm{{.*}}, 

Re: r246223 - [X86][3DNow] Added debug codegen test for 3DNow! intrinsics

2015-08-28 Thread Renato Golin via cfe-commits
Thanks!
On 28 Aug 2015 9:33 pm, Simon Pilgrim llvm-...@redking.me.uk wrote:

 Thanks for the heads up Renato. I've a candidate fix (it was missing
 REQUIRES: x86-registered-target) and will commit it later and keep an extra
 eye on the non-x86 buildbots.

 On 28/08/2015 20:41, Renato Golin wrote:

 And finally this one in r246323.

 Please, move all those tests to an X86 specific area and check the
 AArch64 bots after commit to make sure it passes.

 You probably didn't get the email because the bot was broken when you
 committed, then all your other commits were breaking a broken bot. :)

 cheers,
 --renato

 On 27 August 2015 at 23:18, Simon Pilgrim via cfe-commits
 cfe-commits@lists.llvm.org wrote:

 Author: rksimon
 Date: Thu Aug 27 17:18:09 2015
 New Revision: 246223

 URL: http://llvm.org/viewvc/llvm-project?rev=246223view=rev
 Log:
 [X86][3DNow] Added debug codegen test for 3DNow! intrinsics

 Part of PR24590

 Modified:
  cfe/trunk/test/CodeGen/3dnow-builtins.c

 Modified: cfe/trunk/test/CodeGen/3dnow-builtins.c
 URL:
 http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/3dnow-builtins.c?rev=246223r1=246222r2=246223view=diff

 ==
 --- cfe/trunk/test/CodeGen/3dnow-builtins.c (original)
 +++ cfe/trunk/test/CodeGen/3dnow-builtins.c Thu Aug 27 17:18:09 2015
 @@ -1,4 +1,5 @@
 -// RUN: %clang_cc1 %s -O3 -triple=x86_64-unknown-unknown
 -target-feature +3dnow -emit-llvm -o - | FileCheck %s
 +// RUN: %clang_cc1 %s -O0 -triple=x86_64-unknown-unknown
 -target-feature +3dnow -emit-llvm -o - -Werror | FileCheck %s
 +// RUN: %clang_cc1 %s -O0 -triple=x86_64-unknown-unknown
 -target-feature +3dnow -S -o - -Werror | FileCheck %s
 --check-prefix=CHECK-ASM

   // Don't include mm_malloc.h, it's system specific.
   #define __MM_MALLOC_H
 @@ -8,108 +9,126 @@
   __m64 test_m_pavgusb(__m64 m1, __m64 m2) {
 // CHECK-LABEL: define i64 @test_m_pavgusb
 // CHECK: @llvm.x86.3dnow.pavgusb
 +  // CHECK-ASM: pavgusb %mm{{.*}}, %mm{{.*}}
 return _m_pavgusb(m1, m2);
   }

   __m64 test_m_pf2id(__m64 m) {
 // CHECK-LABEL: define i64 @test_m_pf2id
 // CHECK: @llvm.x86.3dnow.pf2id
 +  // CHECK-ASM: pf2id %mm{{.*}}, %mm{{.*}}
 return _m_pf2id(m);
   }

   __m64 test_m_pfacc(__m64 m1, __m64 m2) {
 // CHECK-LABEL: define i64 @test_m_pfacc
 // CHECK: @llvm.x86.3dnow.pfacc
 +  // CHECK-ASM: pfacc %mm{{.*}}, %mm{{.*}}
 return _m_pfacc(m1, m2);
   }

   __m64 test_m_pfadd(__m64 m1, __m64 m2) {
 // CHECK-LABEL: define i64 @test_m_pfadd
 // CHECK: @llvm.x86.3dnow.pfadd
 +  // CHECK-ASM: pfadd %mm{{.*}}, %mm{{.*}}
 return _m_pfadd(m1, m2);
   }

   __m64 test_m_pfcmpeq(__m64 m1, __m64 m2) {
 // CHECK-LABEL: define i64 @test_m_pfcmpeq
 // CHECK: @llvm.x86.3dnow.pfcmpeq
 +  // CHECK-ASM: pfcmpeq %mm{{.*}}, %mm{{.*}}
 return _m_pfcmpeq(m1, m2);
   }

   __m64 test_m_pfcmpge(__m64 m1, __m64 m2) {
 // CHECK-LABEL: define i64 @test_m_pfcmpge
 // CHECK: @llvm.x86.3dnow.pfcmpge
 +  // CHECK-ASM: pfcmpge %mm{{.*}}, %mm{{.*}}
 return _m_pfcmpge(m1, m2);
   }

   __m64 test_m_pfcmpgt(__m64 m1, __m64 m2) {
 // CHECK-LABEL: define i64 @test_m_pfcmpgt
 // CHECK: @llvm.x86.3dnow.pfcmpgt
 +  // CHECK-ASM: pfcmpgt %mm{{.*}}, %mm{{.*}}
 return _m_pfcmpgt(m1, m2);
   }

   __m64 test_m_pfmax(__m64 m1, __m64 m2) {
 // CHECK-LABEL: define i64 @test_m_pfmax
 // CHECK: @llvm.x86.3dnow.pfmax
 +  // CHECK-ASM: pfmax %mm{{.*}}, %mm{{.*}}
 return _m_pfmax(m1, m2);
   }

   __m64 test_m_pfmin(__m64 m1, __m64 m2) {
 // CHECK-LABEL: define i64 @test_m_pfmin
 // CHECK: @llvm.x86.3dnow.pfmin
 +  // CHECK-ASM: pfmin %mm{{.*}}, %mm{{.*}}
 return _m_pfmin(m1, m2);
   }

   __m64 test_m_pfmul(__m64 m1, __m64 m2) {
 // CHECK-LABEL: define i64 @test_m_pfmul
 // CHECK: @llvm.x86.3dnow.pfmul
 +  // CHECK-ASM: pfmul %mm{{.*}}, %mm{{.*}}
 return _m_pfmul(m1, m2);
   }

   __m64 test_m_pfrcp(__m64 m) {
 // CHECK-LABEL: define i64 @test_m_pfrcp
 // CHECK: @llvm.x86.3dnow.pfrcp
 +  // CHECK-ASM: pfrcp %mm{{.*}}, %mm{{.*}}
 return _m_pfrcp(m);
   }

   __m64 test_m_pfrcpit1(__m64 m1, __m64 m2) {
 // CHECK-LABEL: define i64 @test_m_pfrcpit1
 // CHECK: @llvm.x86.3dnow.pfrcpit1
 +  // CHECK-ASM: pfrcpit1 %mm{{.*}}, %mm{{.*}}
 return _m_pfrcpit1(m1, m2);
   }

   __m64 test_m_pfrcpit2(__m64 m1, __m64 m2) {
 // CHECK-LABEL: define i64 @test_m_pfrcpit2
 // CHECK: @llvm.x86.3dnow.pfrcpit2
 +  // CHECK-ASM: pfrcpit2 %mm{{.*}}, %mm{{.*}}
 return _m_pfrcpit2(m1, m2);
   }

   __m64 test_m_pfrsqrt(__m64 m) {
 // CHECK-LABEL: define i64 @test_m_pfrsqrt
 // CHECK: @llvm.x86.3dnow.pfrsqrt
 +  // CHECK-ASM: pfrsqrt %mm{{.*}}, %mm{{.*}}
 return _m_pfrsqrt(m);
   }

   __m64 test_m_pfrsqrtit1(__m64 m1, __m64 m2) {
 // CHECK-LABEL: define i64 @test_m_pfrsqrtit1
 // CHECK: @llvm.x86.3dnow.pfrsqit1
 +  // CHECK-ASM: pfrsqit1 %mm{{.*}}, %mm{{.*}}

Re: r246223 - [X86][3DNow] Added debug codegen test for 3DNow! intrinsics

2015-08-28 Thread Renato Golin via cfe-commits
And finally this one in r246323.

Please, move all those tests to an X86 specific area and check the
AArch64 bots after commit to make sure it passes.

You probably didn't get the email because the bot was broken when you
committed, then all your other commits were breaking a broken bot. :)

cheers,
--renato

On 27 August 2015 at 23:18, Simon Pilgrim via cfe-commits
cfe-commits@lists.llvm.org wrote:
 Author: rksimon
 Date: Thu Aug 27 17:18:09 2015
 New Revision: 246223

 URL: http://llvm.org/viewvc/llvm-project?rev=246223view=rev
 Log:
 [X86][3DNow] Added debug codegen test for 3DNow! intrinsics

 Part of PR24590

 Modified:
 cfe/trunk/test/CodeGen/3dnow-builtins.c

 Modified: cfe/trunk/test/CodeGen/3dnow-builtins.c
 URL: 
 http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/3dnow-builtins.c?rev=246223r1=246222r2=246223view=diff
 ==
 --- cfe/trunk/test/CodeGen/3dnow-builtins.c (original)
 +++ cfe/trunk/test/CodeGen/3dnow-builtins.c Thu Aug 27 17:18:09 2015
 @@ -1,4 +1,5 @@
 -// RUN: %clang_cc1 %s -O3 -triple=x86_64-unknown-unknown -target-feature 
 +3dnow -emit-llvm -o - | FileCheck %s
 +// RUN: %clang_cc1 %s -O0 -triple=x86_64-unknown-unknown -target-feature 
 +3dnow -emit-llvm -o - -Werror | FileCheck %s
 +// RUN: %clang_cc1 %s -O0 -triple=x86_64-unknown-unknown -target-feature 
 +3dnow -S -o - -Werror | FileCheck %s --check-prefix=CHECK-ASM

  // Don't include mm_malloc.h, it's system specific.
  #define __MM_MALLOC_H
 @@ -8,108 +9,126 @@
  __m64 test_m_pavgusb(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pavgusb
// CHECK: @llvm.x86.3dnow.pavgusb
 +  // CHECK-ASM: pavgusb %mm{{.*}}, %mm{{.*}}
return _m_pavgusb(m1, m2);
  }

  __m64 test_m_pf2id(__m64 m) {
// CHECK-LABEL: define i64 @test_m_pf2id
// CHECK: @llvm.x86.3dnow.pf2id
 +  // CHECK-ASM: pf2id %mm{{.*}}, %mm{{.*}}
return _m_pf2id(m);
  }

  __m64 test_m_pfacc(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfacc
// CHECK: @llvm.x86.3dnow.pfacc
 +  // CHECK-ASM: pfacc %mm{{.*}}, %mm{{.*}}
return _m_pfacc(m1, m2);
  }

  __m64 test_m_pfadd(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfadd
// CHECK: @llvm.x86.3dnow.pfadd
 +  // CHECK-ASM: pfadd %mm{{.*}}, %mm{{.*}}
return _m_pfadd(m1, m2);
  }

  __m64 test_m_pfcmpeq(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfcmpeq
// CHECK: @llvm.x86.3dnow.pfcmpeq
 +  // CHECK-ASM: pfcmpeq %mm{{.*}}, %mm{{.*}}
return _m_pfcmpeq(m1, m2);
  }

  __m64 test_m_pfcmpge(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfcmpge
// CHECK: @llvm.x86.3dnow.pfcmpge
 +  // CHECK-ASM: pfcmpge %mm{{.*}}, %mm{{.*}}
return _m_pfcmpge(m1, m2);
  }

  __m64 test_m_pfcmpgt(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfcmpgt
// CHECK: @llvm.x86.3dnow.pfcmpgt
 +  // CHECK-ASM: pfcmpgt %mm{{.*}}, %mm{{.*}}
return _m_pfcmpgt(m1, m2);
  }

  __m64 test_m_pfmax(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfmax
// CHECK: @llvm.x86.3dnow.pfmax
 +  // CHECK-ASM: pfmax %mm{{.*}}, %mm{{.*}}
return _m_pfmax(m1, m2);
  }

  __m64 test_m_pfmin(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfmin
// CHECK: @llvm.x86.3dnow.pfmin
 +  // CHECK-ASM: pfmin %mm{{.*}}, %mm{{.*}}
return _m_pfmin(m1, m2);
  }

  __m64 test_m_pfmul(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfmul
// CHECK: @llvm.x86.3dnow.pfmul
 +  // CHECK-ASM: pfmul %mm{{.*}}, %mm{{.*}}
return _m_pfmul(m1, m2);
  }

  __m64 test_m_pfrcp(__m64 m) {
// CHECK-LABEL: define i64 @test_m_pfrcp
// CHECK: @llvm.x86.3dnow.pfrcp
 +  // CHECK-ASM: pfrcp %mm{{.*}}, %mm{{.*}}
return _m_pfrcp(m);
  }

  __m64 test_m_pfrcpit1(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfrcpit1
// CHECK: @llvm.x86.3dnow.pfrcpit1
 +  // CHECK-ASM: pfrcpit1 %mm{{.*}}, %mm{{.*}}
return _m_pfrcpit1(m1, m2);
  }

  __m64 test_m_pfrcpit2(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfrcpit2
// CHECK: @llvm.x86.3dnow.pfrcpit2
 +  // CHECK-ASM: pfrcpit2 %mm{{.*}}, %mm{{.*}}
return _m_pfrcpit2(m1, m2);
  }

  __m64 test_m_pfrsqrt(__m64 m) {
// CHECK-LABEL: define i64 @test_m_pfrsqrt
// CHECK: @llvm.x86.3dnow.pfrsqrt
 +  // CHECK-ASM: pfrsqrt %mm{{.*}}, %mm{{.*}}
return _m_pfrsqrt(m);
  }

  __m64 test_m_pfrsqrtit1(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfrsqrtit1
// CHECK: @llvm.x86.3dnow.pfrsqit1
 +  // CHECK-ASM: pfrsqit1 %mm{{.*}}, %mm{{.*}}
return _m_pfrsqrtit1(m1, m2);
  }

  __m64 test_m_pfsub(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfsub
// CHECK: @llvm.x86.3dnow.pfsub
 +  // CHECK-ASM: pfsub %mm{{.*}}, %mm{{.*}}
return _m_pfsub(m1, m2);
  }

  __m64 test_m_pfsubr(__m64 m1, __m64 m2) {
// CHECK-LABEL: define i64 @test_m_pfsubr
// CHECK: @llvm.x86.3dnow.pfsubr
 +  // CHECK-ASM: 

r246223 - [X86][3DNow] Added debug codegen test for 3DNow! intrinsics

2015-08-27 Thread Simon Pilgrim via cfe-commits
Author: rksimon
Date: Thu Aug 27 17:18:09 2015
New Revision: 246223

URL: http://llvm.org/viewvc/llvm-project?rev=246223view=rev
Log:
[X86][3DNow] Added debug codegen test for 3DNow! intrinsics

Part of PR24590

Modified:
cfe/trunk/test/CodeGen/3dnow-builtins.c

Modified: cfe/trunk/test/CodeGen/3dnow-builtins.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/3dnow-builtins.c?rev=246223r1=246222r2=246223view=diff
==
--- cfe/trunk/test/CodeGen/3dnow-builtins.c (original)
+++ cfe/trunk/test/CodeGen/3dnow-builtins.c Thu Aug 27 17:18:09 2015
@@ -1,4 +1,5 @@
-// RUN: %clang_cc1 %s -O3 -triple=x86_64-unknown-unknown -target-feature 
+3dnow -emit-llvm -o - | FileCheck %s
+// RUN: %clang_cc1 %s -O0 -triple=x86_64-unknown-unknown -target-feature 
+3dnow -emit-llvm -o - -Werror | FileCheck %s
+// RUN: %clang_cc1 %s -O0 -triple=x86_64-unknown-unknown -target-feature 
+3dnow -S -o - -Werror | FileCheck %s --check-prefix=CHECK-ASM
 
 // Don't include mm_malloc.h, it's system specific.
 #define __MM_MALLOC_H
@@ -8,108 +9,126 @@
 __m64 test_m_pavgusb(__m64 m1, __m64 m2) {
   // CHECK-LABEL: define i64 @test_m_pavgusb
   // CHECK: @llvm.x86.3dnow.pavgusb
+  // CHECK-ASM: pavgusb %mm{{.*}}, %mm{{.*}}
   return _m_pavgusb(m1, m2);
 }
 
 __m64 test_m_pf2id(__m64 m) {
   // CHECK-LABEL: define i64 @test_m_pf2id
   // CHECK: @llvm.x86.3dnow.pf2id
+  // CHECK-ASM: pf2id %mm{{.*}}, %mm{{.*}}
   return _m_pf2id(m);
 }
 
 __m64 test_m_pfacc(__m64 m1, __m64 m2) {
   // CHECK-LABEL: define i64 @test_m_pfacc
   // CHECK: @llvm.x86.3dnow.pfacc
+  // CHECK-ASM: pfacc %mm{{.*}}, %mm{{.*}}
   return _m_pfacc(m1, m2);
 }
 
 __m64 test_m_pfadd(__m64 m1, __m64 m2) {
   // CHECK-LABEL: define i64 @test_m_pfadd
   // CHECK: @llvm.x86.3dnow.pfadd
+  // CHECK-ASM: pfadd %mm{{.*}}, %mm{{.*}}
   return _m_pfadd(m1, m2);
 }
 
 __m64 test_m_pfcmpeq(__m64 m1, __m64 m2) {
   // CHECK-LABEL: define i64 @test_m_pfcmpeq
   // CHECK: @llvm.x86.3dnow.pfcmpeq
+  // CHECK-ASM: pfcmpeq %mm{{.*}}, %mm{{.*}}
   return _m_pfcmpeq(m1, m2);
 }
 
 __m64 test_m_pfcmpge(__m64 m1, __m64 m2) {
   // CHECK-LABEL: define i64 @test_m_pfcmpge
   // CHECK: @llvm.x86.3dnow.pfcmpge
+  // CHECK-ASM: pfcmpge %mm{{.*}}, %mm{{.*}}
   return _m_pfcmpge(m1, m2);
 }
 
 __m64 test_m_pfcmpgt(__m64 m1, __m64 m2) {
   // CHECK-LABEL: define i64 @test_m_pfcmpgt
   // CHECK: @llvm.x86.3dnow.pfcmpgt
+  // CHECK-ASM: pfcmpgt %mm{{.*}}, %mm{{.*}}
   return _m_pfcmpgt(m1, m2);
 }
 
 __m64 test_m_pfmax(__m64 m1, __m64 m2) {
   // CHECK-LABEL: define i64 @test_m_pfmax
   // CHECK: @llvm.x86.3dnow.pfmax
+  // CHECK-ASM: pfmax %mm{{.*}}, %mm{{.*}}
   return _m_pfmax(m1, m2);
 }
 
 __m64 test_m_pfmin(__m64 m1, __m64 m2) {
   // CHECK-LABEL: define i64 @test_m_pfmin
   // CHECK: @llvm.x86.3dnow.pfmin
+  // CHECK-ASM: pfmin %mm{{.*}}, %mm{{.*}}
   return _m_pfmin(m1, m2);
 }
 
 __m64 test_m_pfmul(__m64 m1, __m64 m2) {
   // CHECK-LABEL: define i64 @test_m_pfmul
   // CHECK: @llvm.x86.3dnow.pfmul
+  // CHECK-ASM: pfmul %mm{{.*}}, %mm{{.*}}
   return _m_pfmul(m1, m2);
 }
 
 __m64 test_m_pfrcp(__m64 m) {
   // CHECK-LABEL: define i64 @test_m_pfrcp
   // CHECK: @llvm.x86.3dnow.pfrcp
+  // CHECK-ASM: pfrcp %mm{{.*}}, %mm{{.*}}
   return _m_pfrcp(m);
 }
 
 __m64 test_m_pfrcpit1(__m64 m1, __m64 m2) {
   // CHECK-LABEL: define i64 @test_m_pfrcpit1
   // CHECK: @llvm.x86.3dnow.pfrcpit1
+  // CHECK-ASM: pfrcpit1 %mm{{.*}}, %mm{{.*}}
   return _m_pfrcpit1(m1, m2);
 }
 
 __m64 test_m_pfrcpit2(__m64 m1, __m64 m2) {
   // CHECK-LABEL: define i64 @test_m_pfrcpit2
   // CHECK: @llvm.x86.3dnow.pfrcpit2
+  // CHECK-ASM: pfrcpit2 %mm{{.*}}, %mm{{.*}}
   return _m_pfrcpit2(m1, m2);
 }
 
 __m64 test_m_pfrsqrt(__m64 m) {
   // CHECK-LABEL: define i64 @test_m_pfrsqrt
   // CHECK: @llvm.x86.3dnow.pfrsqrt
+  // CHECK-ASM: pfrsqrt %mm{{.*}}, %mm{{.*}}
   return _m_pfrsqrt(m);
 }
 
 __m64 test_m_pfrsqrtit1(__m64 m1, __m64 m2) {
   // CHECK-LABEL: define i64 @test_m_pfrsqrtit1
   // CHECK: @llvm.x86.3dnow.pfrsqit1
+  // CHECK-ASM: pfrsqit1 %mm{{.*}}, %mm{{.*}}
   return _m_pfrsqrtit1(m1, m2);
 }
 
 __m64 test_m_pfsub(__m64 m1, __m64 m2) {
   // CHECK-LABEL: define i64 @test_m_pfsub
   // CHECK: @llvm.x86.3dnow.pfsub
+  // CHECK-ASM: pfsub %mm{{.*}}, %mm{{.*}}
   return _m_pfsub(m1, m2);
 }
 
 __m64 test_m_pfsubr(__m64 m1, __m64 m2) {
   // CHECK-LABEL: define i64 @test_m_pfsubr
   // CHECK: @llvm.x86.3dnow.pfsubr
+  // CHECK-ASM: pfsubr %mm{{.*}}, %mm{{.*}}
   return _m_pfsubr(m1, m2);
 }
 
 __m64 test_m_pi2fd(__m64 m) {
   // CHECK-LABEL: define i64 @test_m_pi2fd
   // CHECK: @llvm.x86.3dnow.pi2fd
+  // CHECK-ASM: pi2fd %mm{{.*}}, %mm{{.*}}
   return _m_pi2fd(m);
 }
 
@@ -122,35 +141,41 @@ __m64 test_m_pmulhrw(__m64 m1, __m64 m2)
 __m64 test_m_pf2iw(__m64 m) {
   // CHECK-LABEL: define i64 @test_m_pf2iw
   // CHECK: @llvm.x86.3dnowa.pf2iw
+  // CHECK-ASM: pf2iw %mm{{.*}}, %mm{{.*}}
   return _m_pf2iw(m);
 }
 
 __m64