diff --git a/src/amd/compiler/aco_optimizer.cpp b/src/amd/compiler/aco_optimizer.cpp index 8e4daaa8167..f6198e4b465 100644 --- a/src/amd/compiler/aco_optimizer.cpp +++ b/src/amd/compiler/aco_optimizer.cpp @@ -194,7 +194,8 @@ struct ssa_info { add_label(label_literal); val = constant; - if (chip >= GFX8 && !op16.isLiteral()) + /* check that no upper bits are lost in case of packed 16bit constants */ + if (chip >= GFX8 && !op16.isLiteral() && op16.constantValue64() == constant) add_label(label_constant_16bit); if (!op32.isLiteral())