From 68b35eb86d831e4256acba73c0c0fef905c3e48b Mon Sep 17 00:00:00 2001 From: Nicolas Stucki Date: Mon, 4 May 2020 19:35:27 +0200 Subject: [PATCH] Add regression test --- tests/pos-macros/f64Pow5Split/Lib.scala | 2 ++ tests/pos-macros/f64Pow5Split/Macro.scala | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 tests/pos-macros/f64Pow5Split/Lib.scala create mode 100644 tests/pos-macros/f64Pow5Split/Macro.scala diff --git a/tests/pos-macros/f64Pow5Split/Lib.scala b/tests/pos-macros/f64Pow5Split/Lib.scala new file mode 100644 index 000000000000..4d29ecb1aaa6 --- /dev/null +++ b/tests/pos-macros/f64Pow5Split/Lib.scala @@ -0,0 +1,2 @@ + +private final val f64Pow5Split: Array[Long] = Macro.f64Pow5Split diff --git a/tests/pos-macros/f64Pow5Split/Macro.scala b/tests/pos-macros/f64Pow5Split/Macro.scala new file mode 100644 index 000000000000..5232ad792d1f --- /dev/null +++ b/tests/pos-macros/f64Pow5Split/Macro.scala @@ -0,0 +1,19 @@ +import scala.quoted._ + +object Macro { + + inline def f64Pow5Split: Array[Long] = ${ f64Pow5SplitExpr } + private def f64Pow5SplitExpr(using QuoteContext): Expr[Array[Long]] = Expr { + val ss = new Array[Long](652) + var pow5 = BigInt(1) + var i = 0 + while (i < 652) { + ss(i) = (pow5 >> (pow5.bitLength - 121)).longValue & 0x3FFFFFFFFFFFFFFFL + ss(i + 1) = (pow5 >> (pow5.bitLength - 59)).longValue & 0x3FFFFFFFFFFFFFFFL + pow5 *= 5 + i += 2 + } + ss + } + +}