CreateTruncOrBitCast или CreateAnd - PullRequest
0 голосов
/ 21 июня 2020

Я использую LLVM для инструментария кода, где нужно извлечь каждый байт переменной. У меня есть две альтернативы:

for (int i = 0; i < 8; i++)
{
  Value* cur_byte = CreateTruncOrBitCast(var, Int8Ty);
  cur_byte = IRB.CreateZExt(cur_byte, Int64Ty);
  /* do something */
  var = IRB.CreateLShr(var, 8);
}

или

for (int i = 0; i < 8; i++)
{
  Value* cur_byte = CreateAnd(var, 0xFF);
  /* do something */
  var = IRB.CreateLShr(var, 8);

Я хотел бы проконсультироваться, какой метод быстрее, или есть другой лучший метод?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...