@@ -4619,29 +4619,19 @@ namespace IGC
46194619        pattern->sources [1 ] = GetSource (s1, false , false , IsSourceOfSample (&I));
46204620        pattern->sources [2 ] = GetSource (s2, false , false , IsSourceOfSample (&I));
46214621
4622-         //  BFN can use imm16 in src0 and src2 (not src1).
4623-         //  Directly pass such immediates (or when lossless conversion is possible);
4622+         //  BFN can use imm16 in src0 and src2, check for those;
46244623        //  otherwise try to add to constant pool even int32.
4625-         if  (ConstantInt *CI =  dyn_cast<ConstantInt>(s0))
4624+         if  (dyn_cast<ConstantInt>(s0) && !s0-> getType ()-> isIntegerTy ( 16 )  )
46264625        {
4627-             if  (!s0->getType ()->isIntegerTy (16 ) && !CI->getValue ().isIntN (16 ))
4628-             {
4629-                 AddToConstantPool (I.getParent (), s0);
4630-                 pattern->sources [0 ].fromConstantPool  = true ;
4631-             }
4626+             AddToConstantPool (I.getParent (), s0); pattern->sources [0 ].fromConstantPool  = true ;
46324627        }
46334628        if  (dyn_cast<ConstantInt>(s1))
46344629        {
4635-             AddToConstantPool (I.getParent (), s1);
4636-             pattern->sources [1 ].fromConstantPool  = true ;
4630+             AddToConstantPool (I.getParent (), s1); pattern->sources [1 ].fromConstantPool  = true ;
46374631        }
4638-         if  (ConstantInt *CI =  dyn_cast<ConstantInt>(s2))
4632+         if  (dyn_cast<ConstantInt>(s2) && !s2-> getType ()-> isIntegerTy ( 16 ))
46394633        {
4640-             if  (!s2->getType ()->isIntegerTy (16 ) && !CI->getValue ().isIntN (16 ))
4641-             {
4642-                 AddToConstantPool (I.getParent (), s2);
4643-                 pattern->sources [2 ].fromConstantPool  = true ;
4644-             }
4634+             AddToConstantPool (I.getParent (), s2); pattern->sources [2 ].fromConstantPool  = true ;
46454635        }
46464636
46474637        AddPattern (pattern);
0 commit comments