Mercurial > projects > ldc
comparison runtime/import/ldc/intrinsics.di @ 741:4ac97ec7c18e
Applied easy part from wilsonk's x86-64 patch in #107
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Thu, 30 Oct 2008 11:08:34 +0100 |
parents | d8a1481eaa0c |
children | 7a0238db1962 |
comparison
equal
deleted
inserted
replaced
740:96484f5bf5af | 741:4ac97ec7c18e |
---|---|
110 { | 110 { |
111 pragma(intrinsic, "llvm.sqrt.f80") | 111 pragma(intrinsic, "llvm.sqrt.f80") |
112 real llvm_sqrt_f80(real val); | 112 real llvm_sqrt_f80(real val); |
113 } | 113 } |
114 | 114 |
115 version(X86_64) | |
116 { | |
117 pragma(intrinsic, "llvm.sqrt.f80") | |
118 real llvm_sqrt_f80(real val); | |
119 } | |
120 | |
115 | 121 |
116 // The 'llvm.sin.*' intrinsics return the sine of the operand. | 122 // The 'llvm.sin.*' intrinsics return the sine of the operand. |
117 | 123 |
118 pragma(intrinsic, "llvm.sin.f32") | 124 pragma(intrinsic, "llvm.sin.f32") |
119 float llvm_sin_f32(float val); | 125 float llvm_sin_f32(float val); |
123 { | 129 { |
124 pragma(intrinsic, "llvm.sin.f80") | 130 pragma(intrinsic, "llvm.sin.f80") |
125 real llvm_sin_f80(real val); | 131 real llvm_sin_f80(real val); |
126 } | 132 } |
127 | 133 |
134 version(X86_64) | |
135 { | |
136 pragma(intrinsic, "llvm.sin.f80") | |
137 real llvm_sin_f80(real val); | |
138 } | |
139 | |
128 | 140 |
129 // The 'llvm.cos.*' intrinsics return the cosine of the operand. | 141 // The 'llvm.cos.*' intrinsics return the cosine of the operand. |
130 | 142 |
131 pragma(intrinsic, "llvm.cos.f32") | 143 pragma(intrinsic, "llvm.cos.f32") |
132 float llvm_cos_f32(float val); | 144 float llvm_cos_f32(float val); |
136 { | 148 { |
137 pragma(intrinsic, "llvm.cos.f80") | 149 pragma(intrinsic, "llvm.cos.f80") |
138 real llvm_cos_f80(real val); | 150 real llvm_cos_f80(real val); |
139 } | 151 } |
140 | 152 |
153 version(X86_64) | |
154 { | |
155 pragma(intrinsic, "llvm.cos.f80") | |
156 real llvm_cos_f80(real val); | |
157 } | |
158 | |
141 | 159 |
142 // The 'llvm.powi.*' intrinsics return the first operand raised to the specified (positive or negative) power. The order of evaluation of multiplications is not defined. When a vector of floating point type is used, the second argument remains a scalar integer value. | 160 // The 'llvm.powi.*' intrinsics return the first operand raised to the specified (positive or negative) power. The order of evaluation of multiplications is not defined. When a vector of floating point type is used, the second argument remains a scalar integer value. |
143 | 161 |
144 pragma(intrinsic, "llvm.powi.f32") | 162 pragma(intrinsic, "llvm.powi.f32") |
145 float llvm_powi_f32(float val, int power); | 163 float llvm_powi_f32(float val, int power); |
150 { | 168 { |
151 pragma(intrinsic, "llvm.powi.f80") | 169 pragma(intrinsic, "llvm.powi.f80") |
152 real llvm_powi_f80(real val, int power); | 170 real llvm_powi_f80(real val, int power); |
153 } | 171 } |
154 | 172 |
173 version(X86_64) | |
174 { | |
175 pragma(intrinsic, "llvm.powi.f80") | |
176 real llvm_powi_f80(real val, int power); | |
177 } | |
155 | 178 |
156 // The 'llvm.pow.*' intrinsics return the first operand raised to the specified (positive or negative) power. | 179 // The 'llvm.pow.*' intrinsics return the first operand raised to the specified (positive or negative) power. |
157 | 180 |
158 pragma(intrinsic, "llvm.pow.f32") | 181 pragma(intrinsic, "llvm.pow.f32") |
159 float llvm_pow_f32(float val, float power); | 182 float llvm_pow_f32(float val, float power); |
164 { | 187 { |
165 pragma(intrinsic, "llvm.pow.f80") | 188 pragma(intrinsic, "llvm.pow.f80") |
166 real llvm_pow_f80(real val, real power); | 189 real llvm_pow_f80(real val, real power); |
167 } | 190 } |
168 | 191 |
169 | 192 version(X86_64) |
193 { | |
194 pragma(intrinsic, "llvm.pow.f80") | |
195 real llvm_pow_f80(real val, real power); | |
196 } | |
170 | 197 |
171 | 198 |
172 // | 199 // |
173 // BIT MANIPULATION INTRINSICS | 200 // BIT MANIPULATION INTRINSICS |
174 // | 201 // |