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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: 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-LABEL: define i64 @test_m_pswapdsi 154 // CHECK: @llvm.x86.3dnowa.pswapd 155 return _m_pswapdsi(m); 156 } 157