Home | History | Annotate | Download | only in CodeGen
      1 // RUN: %clang_cc1 %s -O3 -triple=x86_64-unknown-unknown -target-feature +3dnow -emit-llvm -o - | FileCheck %s
      2 
      3 // Don't include mm_malloc.h, it's system specific.
      4 #define __MM_MALLOC_H
      5 
      6 #include <x86intrin.h>
      7 
      8 __m64 test_m_pavgusb(__m64 m1, __m64 m2) {
      9   // CHECK: define i64 @test_m_pavgusb
     10   // CHECK: @llvm.x86.3dnow.pavgusb
     11   return _m_pavgusb(m1, m2);
     12 }
     13 
     14 __m64 test_m_pf2id(__m64 m) {
     15   // CHECK: define i64 @test_m_pf2id
     16   // CHECK: @llvm.x86.3dnow.pf2id
     17   return _m_pf2id(m);
     18 }
     19 
     20 __m64 test_m_pfacc(__m64 m1, __m64 m2) {
     21   // CHECK: define i64 @test_m_pfacc
     22   // CHECK: @llvm.x86.3dnow.pfacc
     23   return _m_pfacc(m1, m2);
     24 }
     25 
     26 __m64 test_m_pfadd(__m64 m1, __m64 m2) {
     27   // CHECK: define i64 @test_m_pfadd
     28   // CHECK: @llvm.x86.3dnow.pfadd
     29   return _m_pfadd(m1, m2);
     30 }
     31 
     32 __m64 test_m_pfcmpeq(__m64 m1, __m64 m2) {
     33   // CHECK: define i64 @test_m_pfcmpeq
     34   // CHECK: @llvm.x86.3dnow.pfcmpeq
     35   return _m_pfcmpeq(m1, m2);
     36 }
     37 
     38 __m64 test_m_pfcmpge(__m64 m1, __m64 m2) {
     39   // CHECK: define i64 @test_m_pfcmpge
     40   // CHECK: @llvm.x86.3dnow.pfcmpge
     41   return _m_pfcmpge(m1, m2);
     42 }
     43 
     44 __m64 test_m_pfcmpgt(__m64 m1, __m64 m2) {
     45   // CHECK: define i64 @test_m_pfcmpgt
     46   // CHECK: @llvm.x86.3dnow.pfcmpgt
     47   return _m_pfcmpgt(m1, m2);
     48 }
     49 
     50 __m64 test_m_pfmax(__m64 m1, __m64 m2) {
     51   // CHECK: define i64 @test_m_pfmax
     52   // CHECK: @llvm.x86.3dnow.pfmax
     53   return _m_pfmax(m1, m2);
     54 }
     55 
     56 __m64 test_m_pfmin(__m64 m1, __m64 m2) {
     57   // CHECK: define i64 @test_m_pfmin
     58   // CHECK: @llvm.x86.3dnow.pfmin
     59   return _m_pfmin(m1, m2);
     60 }
     61 
     62 __m64 test_m_pfmul(__m64 m1, __m64 m2) {
     63   // CHECK: define i64 @test_m_pfmul
     64   // CHECK: @llvm.x86.3dnow.pfmul
     65   return _m_pfmul(m1, m2);
     66 }
     67 
     68 __m64 test_m_pfrcp(__m64 m) {
     69   // CHECK: define i64 @test_m_pfrcp
     70   // CHECK: @llvm.x86.3dnow.pfrcp
     71   return _m_pfrcp(m);
     72 }
     73 
     74 __m64 test_m_pfrcpit1(__m64 m1, __m64 m2) {
     75   // CHECK: define i64 @test_m_pfrcpit1
     76   // CHECK: @llvm.x86.3dnow.pfrcpit1
     77   return _m_pfrcpit1(m1, m2);
     78 }
     79 
     80 __m64 test_m_pfrcpit2(__m64 m1, __m64 m2) {
     81   // CHECK: define i64 @test_m_pfrcpit2
     82   // CHECK: @llvm.x86.3dnow.pfrcpit2
     83   return _m_pfrcpit2(m1, m2);
     84 }
     85 
     86 __m64 test_m_pfrsqrt(__m64 m) {
     87   // CHECK: define i64 @test_m_pfrsqrt
     88   // CHECK: @llvm.x86.3dnow.pfrsqrt
     89   return _m_pfrsqrt(m);
     90 }
     91 
     92 __m64 test_m_pfrsqrtit1(__m64 m1, __m64 m2) {
     93   // CHECK: define i64 @test_m_pfrsqrtit1
     94   // CHECK: @llvm.x86.3dnow.pfrsqit1
     95   return _m_pfrsqrtit1(m1, m2);
     96 }
     97 
     98 __m64 test_m_pfsub(__m64 m1, __m64 m2) {
     99   // CHECK: define i64 @test_m_pfsub
    100   // CHECK: @llvm.x86.3dnow.pfsub
    101   return _m_pfsub(m1, m2);
    102 }
    103 
    104 __m64 test_m_pfsubr(__m64 m1, __m64 m2) {
    105   // CHECK: define i64 @test_m_pfsubr
    106   // CHECK: @llvm.x86.3dnow.pfsubr
    107   return _m_pfsubr(m1, m2);
    108 }
    109 
    110 __m64 test_m_pi2fd(__m64 m) {
    111   // CHECK: define i64 @test_m_pi2fd
    112   // CHECK: @llvm.x86.3dnow.pi2fd
    113   return _m_pi2fd(m);
    114 }
    115 
    116 __m64 test_m_pmulhrw(__m64 m1, __m64 m2) {
    117   // CHECK: define i64 @test_m_pmulhrw
    118   // CHECK: @llvm.x86.3dnow.pmulhrw
    119   return _m_pmulhrw(m1, m2);
    120 }
    121 
    122 __m64 test_m_pf2iw(__m64 m) {
    123   // CHECK: define i64 @test_m_pf2iw
    124   // CHECK: @llvm.x86.3dnowa.pf2iw
    125   return _m_pf2iw(m);
    126 }
    127 
    128 __m64 test_m_pfnacc(__m64 m1, __m64 m2) {
    129   // CHECK: define i64 @test_m_pfnacc
    130   // CHECK: @llvm.x86.3dnowa.pfnacc
    131   return _m_pfnacc(m1, m2);
    132 }
    133 
    134 __m64 test_m_pfpnacc(__m64 m1, __m64 m2) {
    135   // CHECK: define i64 @test_m_pfpnacc
    136   // CHECK: @llvm.x86.3dnowa.pfpnacc
    137   return _m_pfpnacc(m1, m2);
    138 }
    139 
    140 __m64 test_m_pi2fw(__m64 m) {
    141   // CHECK: define i64 @test_m_pi2fw
    142   // CHECK: @llvm.x86.3dnowa.pi2fw
    143   return _m_pi2fw(m);
    144 }
    145 
    146 __m64 test_m_pswapdsf(__m64 m) {
    147   // CHECK: define i64 @test_m_pswapdsf
    148   // CHECK: @llvm.x86.3dnowa.pswapd
    149   return _m_pswapdsf(m);
    150 }
    151 
    152 __m64 test_m_pswapdsi(__m64 m) {
    153   // CHECK: define i64 @test_m_pswapdsi
    154   // CHECK: @llvm.x86.3dnowa.pswapd
    155   return _m_pswapdsi(m);
    156 }
    157