[llvm-commits] CVS: llvm/test/Regression/CodeGen/CBackend/2006-12-11-Float-Bitcast.ll

Reid Spencer reid at x10sys.com
Mon Dec 11 12:40:43 PST 2006



Changes in directory llvm/test/Regression/CodeGen/CBackend:

2006-12-11-Float-Bitcast.ll added (r1.1)
---
Log message:

Provide a test for int<->float and long<->double bitcasts.


---
Diffs of the changes:  (+48 -0)

 2006-12-11-Float-Bitcast.ll |   48 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 48 insertions(+)


Index: llvm/test/Regression/CodeGen/CBackend/2006-12-11-Float-Bitcast.ll
diff -c /dev/null llvm/test/Regression/CodeGen/CBackend/2006-12-11-Float-Bitcast.ll:1.1
*** /dev/null	Mon Dec 11 14:40:38 2006
--- llvm/test/Regression/CodeGen/CBackend/2006-12-11-Float-Bitcast.ll	Mon Dec 11 14:40:28 2006
***************
*** 0 ****
--- 1,48 ----
+ ; RUN: llvm-upgrade < %s | llvm-as | llc -march=c &&
+ ; RUN: llvm-upgrade < %s | llvm-as | llc -march=c | grep '__BITCAST' | wc -l | grep 14
+ 
+ int %test1(float %F) {
+    %X = bitcast float %F to int
+    ret int %X
+ }
+ 
+ float %test2(int %I) {
+   %X = bitcast int %I to float
+   ret float %X
+ }
+ 
+ long %test3(double %D) {
+   %X = bitcast double %D to long
+   ret long %X
+ }
+ 
+ double %test4(long %L) {
+   %X = bitcast long %L to double
+   ret double %X
+ }
+ 
+ double %test5(double %D) {
+   %X = bitcast double %D to double
+   %Y = add double %X, 2.0
+   %Z = bitcast double %Y to long
+   %res = bitcast long %Z to double
+   ret double %res
+ }
+ 
+ float %test6(float %F) {
+   %X = bitcast float %F to float
+   %Y = add float %X, 2.0
+   %Z = bitcast float %Y to int
+   %res = bitcast int %Z to float
+   ret float %res
+ }
+ 
+ int %main(int %argc, sbyte** %argv) {
+   %a = call int %test1(float 3.1415926)
+   %b = call float %test2(int %a)
+   %c = call long %test3(double 3.1415926)
+   %d = call double %test4(long %c)
+   %e = call double %test5(double 7.0)
+   %f = call float %test6(float 7.0)
+   ret int %a
+ }






More information about the llvm-commits mailing list