Imported Upstream version 6.10.0.49

Former-commit-id: 1d6753294b2993e1fbf92de9366bb9544db4189b
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2020-01-16 16:38:04 +00:00
parent d94e79959b
commit 468663ddbb
48518 changed files with 2789335 additions and 61176 deletions

View File

@ -0,0 +1,37 @@
//===-- CBackend.cpp - Library for converting LLVM code to C ----------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===------------------------------------------------------------------------------===//
//
// Tests if the CBE will execute a fibonacci numbers example.
// Credit: http://en.literateprograms.org/Fibonacci_numbers_(C)
// *TW
//===------------------------------------------------------------------------------===//
unsigned int fastfib(unsigned int n);
int main(){
return fastfib(6) - 2;
}
unsigned int fastfib(unsigned int n){
unsigned int a[3];
unsigned int *p=a;
unsigned int i;
for(i=0; i<=n; ++i) {
if(i<2) *p=i;
else{
if(p==a) *p=*(a+1)+*(a+2);
else if(p==a+1) *p=*a+*(a+2);
else *p=*a+*(a+1);
}
if(++p>a+2) p=a;
}
return p==a?*(p+2):*(p-1);
}