-
Notifications
You must be signed in to change notification settings - Fork 2
Closed
Labels
bugSomething isn't workingSomething isn't workingfrontendThis is frontend relatedThis is frontend related
Description
The following program:
constant VL = 128 // vector length, number of bits in a vector register
using Bits5 = Bits< 5> // 5 bit type
using Bits2 = Bits< 2> // 2 bit type
using BitsX = Bits<64> // 64 bit type
function DecodePredCount(pattern: Bits5, size: Bits2) -> BitsX =
let elements = VL >> (3+size) in
match pattern with
{ '00000' => elements as BitsX // elements is always a power of 2
, '00001' => if elements >= 1 then 1 else 0
, '00010' => if elements >= 2 then 2 else 0
, '00011' => if elements >= 3 then 3 else 0
, '00100' => if elements >= 4 then 4 else 0
, '00101' => if elements >= 5 then 5 else 0
, '00110' => if elements >= 6 then 6 else 0
, '00111' => if elements >= 7 then 7 else 0
, '01000' => if elements >= 8 then 8 else 0
, '01001' => if elements >= 16 then 16 else 0
, '01010' => if elements >= 32 then 32 else 0
, '01011' => if elements >= 64 then 64 else 0
, '01100' => if elements >= 128 then 128 else 0
, '01101' => if elements >= 256 then 256 else 0
, '11101' => elements - elements % 4
, '11110' => elements - elements % 3
, '11111' => elements
, _ => 0
}
leads to the following crash:
___ ___ _ ___ _ _
/ __| _ \ /_\ / __| || |
| (__| / / _ \\__ \ __ |
\___|_|_\/_/ \_\___/_||_|
π₯ The OpenVADL compiler crashed π₯
This shouldn't have happened, please open an issue with the stacktrace below at:
https://github.com/OpenVADL/open-vadl/issues/new
vadl.ast.EvaluationError: Cannot evaluate identifier with origin of vadl.ast.Parameter
at vadl.ast.ConstantEvaluator.visitIdentifiable(ConstantEvaluator.java:112)
at vadl.ast.ConstantEvaluator.visit(ConstantEvaluator.java:158)
at vadl.ast.ConstantEvaluator.visit(ConstantEvaluator.java:47)
at vadl.ast.Identifier.accept(Expr.java:219)
at vadl.ast.ConstantEvaluator.eval(ConstantEvaluator.java:70)
at vadl.ast.ConstantEvaluator.visit(ConstantEvaluator.java:201)
at vadl.ast.ConstantEvaluator.visit(ConstantEvaluator.java:47)
at vadl.ast.BinaryExpr.accept(Expr.java:454)
at vadl.ast.ConstantEvaluator.visit(ConstantEvaluator.java:404)
at vadl.ast.ConstantEvaluator.visit(ConstantEvaluator.java:47)
at vadl.ast.CastExpr.accept(Expr.java:2217)
at vadl.ast.ConstantEvaluator.eval(ConstantEvaluator.java:70)
at vadl.ast.ConstantEvaluator.visit(ConstantEvaluator.java:201)
at vadl.ast.ConstantEvaluator.visit(ConstantEvaluator.java:47)
at vadl.ast.BinaryExpr.accept(Expr.java:454)
at vadl.ast.ConstantEvaluator.eval(ConstantEvaluator.java:70)
at vadl.ast.TypeChecker.visit(TypeChecker.java:2596)
at vadl.ast.TypeChecker.visit(TypeChecker.java:74)
at vadl.ast.BinaryExpr.accept(Expr.java:454)
at vadl.ast.TypeChecker.check(TypeChecker.java:161)
at vadl.ast.TypeChecker.visit(TypeChecker.java:3638)
at vadl.ast.TypeChecker.visit(TypeChecker.java:74)
at vadl.ast.LetExpr.accept(Expr.java:2143)
at vadl.ast.TypeChecker.check(TypeChecker.java:161)
at vadl.ast.TypeChecker.visit(TypeChecker.java:1085)
at vadl.ast.TypeChecker.visit(TypeChecker.java:74)
at vadl.ast.FunctionDefinition.accept(Definition.java:1977)
at vadl.ast.TypeChecker.check(TypeChecker.java:261)
at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1604)
at vadl.ast.TypeChecker.verify(TypeChecker.java:284)
at vadl.cli.BaseCommand.parseToVIAM(BaseCommand.java:255)
at vadl.cli.BaseCommand.call(BaseCommand.java:329)
at vadl.cli.BaseCommand.call(BaseCommand.java:66)
at picocli.CommandLine.executeUserObject(CommandLine.java:2045)
at picocli.CommandLine.access$1500(CommandLine.java:148)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2465)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2457)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2419)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2421)
at picocli.CommandLine.execute(CommandLine.java:2174)
at vadl.cli.Main.main(Main.java:44)
at [email protected]/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH)
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingfrontendThis is frontend relatedThis is frontend related