%0 = bitcast i16 %arg1 to <2 x i8>
%2 = extractelement <2 x i8> %0, i32 1
%arg1
в памяти:битого расположение вектора после bitcasting в LLVM
00000000 11111111
|--8bit--||--8bit--|
После bitcasting, %0
представляет собой указатель на вектор.
Значит, %0
также адрес первого элемента вектора?
А что такое %2
? Является ли это вторым элементом vector(11111111)
или, 00000000
?
У вас есть две ошибки здесь: во-первых, вы пишете, что «'% 0' является массивом/вектором »- в то время как это явно вектор, а не массив. Кроме того, 'extractelement' является значением типа' i8', а не 'i32' -' i32' является типом индекса. – Oak
Вектор логически обрабатывается как массив, поэтому я называет его косой чертой. Хороший улов на 32-битном и 8-битном; Я определенно неправильно читаю документацию по этому. – pickypg