3dnow-builtins.c revision 345032a7211a6f983d59c30c0b3fa2b96819532a
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