@@ -301,7 +301,8 @@ void LSCCacheOptimizationPass::visitStoreInst(StoreInst &storeInst) {
301301 // %2 = bitcast i8* %1 to <num_green_blocks_left x iN>*
302302 auto *left_green_vector_pointer = builder.CreateBitCast (
303303 left_green_address,
304- IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_green_blocks_left)->getPointerTo (addrspace));
304+ IGCLLVM::PointerType::get (IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_green_blocks_left),
305+ addrspace));
305306 // %3 = load <num_green_blocks_left x iN>, <num_green_blocks_left x iN>* %2
306307 auto *left_green_vector_rvalue = builder.CreateLoad (
307308 IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_green_blocks_left), left_green_vector_pointer);
@@ -324,7 +325,8 @@ void LSCCacheOptimizationPass::visitStoreInst(StoreInst &storeInst) {
324325
325326 auto *final_vector_pointer_left = builder.CreateBitCast (
326327 left_green_address,
327- IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_total_blocks_left)->getPointerTo (addrspace));
328+ IGCLLVM::PointerType::get (IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_total_blocks_left),
329+ addrspace));
328330 builder.CreateAlignedStore (final_vector_left, final_vector_pointer_left, llvm::Align (LSC_WRITE_GRANULARITY ));
329331
330332 auto *right_part_address = builder.CreateGEP (builder.getInt8Ty (), bitcast1, builder.getInt64 (32 - offset));
@@ -336,7 +338,8 @@ void LSCCacheOptimizationPass::visitStoreInst(StoreInst &storeInst) {
336338 auto *right_green_address = builder.CreateGEP (builder.getInt8Ty (), bitcast1, builder.getInt64 (data_size));
337339 auto *right_green_vector_pointer = builder.CreateBitCast (
338340 right_green_address,
339- IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_green_blocks_right)->getPointerTo (addrspace));
341+ IGCLLVM::PointerType::get (IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_green_blocks_right),
342+ addrspace));
340343 auto *right_green_vector_rvalue = builder.CreateLoad (
341344 IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_green_blocks_right), right_green_vector_pointer);
342345 extract_elements (builder, right_green_vector_rvalue, green_elements_right, num_green_blocks_right);
@@ -350,7 +353,8 @@ void LSCCacheOptimizationPass::visitStoreInst(StoreInst &storeInst) {
350353
351354 auto *final_vector_pointer_right = builder.CreateBitCast (
352355 right_part_address,
353- IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_total_blocks_right)->getPointerTo (addrspace));
356+ IGCLLVM::PointerType::get (IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_total_blocks_right),
357+ addrspace));
354358 builder.CreateAlignedStore (final_vector_right, final_vector_pointer_right, llvm::Align (LSC_WRITE_GRANULARITY ));
355359 }
356360 // If the data straddles across one or two 16 byte size chunks,
@@ -375,8 +379,8 @@ void LSCCacheOptimizationPass::visitStoreInst(StoreInst &storeInst) {
375379 auto *green_address = builder.CreateGEP (builder.getInt8Ty (), bitcast1, builder.getInt64 (data_size));
376380 // %2 = bitcast i8* %1 to <num_green_blocks x iN>*
377381 auto *green_vector_pointer = builder.CreateBitCast (
378- green_address,
379- IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_green_blocks)-> getPointerTo ( addrspace));
382+ green_address, IGCLLVM::PointerType::get (
383+ IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_green_blocks), addrspace));
380384 // %3 = load <num_green_blocks x iN>, <num_green_blocks x iN>* %2
381385 auto *green_vector_rvalue = builder.CreateLoad (
382386 IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_green_blocks), green_vector_pointer);
@@ -393,7 +397,7 @@ void LSCCacheOptimizationPass::visitStoreInst(StoreInst &storeInst) {
393397
394398 auto *final_vector_pointer = builder.CreateBitCast (
395399 initial_pointer,
396- IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_elements)-> getPointerTo ( addrspace));
400+ IGCLLVM::PointerType::get ( IGCLLVM:: FixedVectorType::get (element_type, (unsigned )num_elements), addrspace));
397401 builder.CreateAlignedStore (final_vector, final_vector_pointer, llvm::Align (LSC_WRITE_GRANULARITY ));
398402 }
399403 // the red blocks are on the right side, contiguous green blocks on the left side
@@ -413,8 +417,8 @@ void LSCCacheOptimizationPass::visitStoreInst(StoreInst &storeInst) {
413417 auto *green_address = builder.CreateGEP (builder.getInt8Ty (), bitcast1, builder.getInt64 (-1 * offset));
414418 // %2 = bitcast i8* %1 to <num_green_blocks x iN>*
415419 auto *green_vector_pointer = builder.CreateBitCast (
416- green_address,
417- IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_green_blocks)-> getPointerTo ( addrspace));
420+ green_address, IGCLLVM::PointerType::get (
421+ IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_green_blocks), addrspace));
418422 // %3 = load <num_green_blocks x iN>, <num_green_blocks x iN>* %2
419423 auto *green_vector_rvalue = builder.CreateLoad (
420424 IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_green_blocks), green_vector_pointer);
@@ -430,7 +434,8 @@ void LSCCacheOptimizationPass::visitStoreInst(StoreInst &storeInst) {
430434 auto *final_vector = insert_elements (builder, intermediate_vector, blue_elements, num_green_blocks, num_elements);
431435
432436 auto *final_vector_pointer = builder.CreateBitCast (
433- green_address, IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_elements)->getPointerTo (addrspace));
437+ green_address,
438+ IGCLLVM::PointerType::get (IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_elements), addrspace));
434439 builder.CreateAlignedStore (final_vector, final_vector_pointer, llvm::Align (LSC_WRITE_GRANULARITY ));
435440 }
436441 // the red blocks in the middle, around them discontinuous green blocks
@@ -449,8 +454,8 @@ void LSCCacheOptimizationPass::visitStoreInst(StoreInst &storeInst) {
449454 auto *starting_address = builder.CreateGEP (builder.getInt8Ty (), bitcast1, builder.getInt64 (-1 * offset));
450455 // %2 = bitcast i8* %1 to <num_total_blocks x iN>*
451456 auto *full_vector_pointer = builder.CreateBitCast (
452- starting_address,
453- IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_total_blocks)-> getPointerTo ( addrspace));
457+ starting_address, IGCLLVM::PointerType::get (
458+ IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_total_blocks), addrspace));
454459 // %3 = load <num_total_blocks x iN>, <num_total_blocks x iN>* %2
455460 auto *full_vector_rvalue = builder.CreateLoad (
456461 IGCLLVM::FixedVectorType::get (element_type, (unsigned )num_total_blocks), full_vector_pointer);
@@ -498,7 +503,10 @@ bool LSCCacheOptimizationPass::create_48_wide_store(Function& function)
498503 // %1 = getelementptr i8, i8* %0, i64 offset
499504 auto* red_address = builder.CreateGEP(builder.getInt8Ty(), bitcast1, builder.getInt64(offset));
500505 // %2 = bitcast i8* %1 to <num_red_blocks x iN>*
501- auto* red_vector_pointer = builder.CreateBitCast(red_address, IGCLLVM::FixedVectorType::get(element_type, (unsigned)num_red_blocks)->getPointerTo(addrspace));
506+ auto* red_vector_pointer = builder.CreateBitCast(
507+ red_address,
508+ IGCLLVM::PointerType::get(IGCLLVM::FixedVectorType::get(element_type, (unsigned)num_red_blocks),
509+ addrspace));
502510 auto* red_vector_rvalue = getZeroedVector(builder, element_type, num_red_blocks);
503511 builder.CreateStore(red_vector_rvalue, red_vector_pointer);
504512
0 commit comments