[llvm-dev] How do I teach codegen to handle i8 arrays as i32s?

Gleb Popov via llvm-dev llvm-dev at lists.llvm.org
Fri Jan 3 10:00:15 PST 2020


Hello.

My backend supports only i32 stores. Given the following IR:

  %2 = alloca [2 x i8], align 1

  %4 = getelementptr inbounds [2 x i8], [2 x i8]* %2, i64 0, i64 0
  store i8 1, i8* %4, align 1
  %5 = getelementptr inbounds [2 x i8], [2 x i8]* %2, i64 0, i64 1
  store i8 2, i8* %5, align 1

is it possible to convince LLVM codegen to first load 4 bytes, then blend
it with the value being stored using "or" and then store 4 bytes back?

Or maybe it should be performed on the IR level?

Thanks in advance.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200103/a1f0b7a0/attachment.html>


More information about the llvm-dev mailing list