Skip to content

Commit 124771e

Browse files
committed
Use SInt32 as pointer idx type, similar to OG
1 parent 141410a commit 124771e

File tree

2 files changed

+25
-25
lines changed

2 files changed

+25
-25
lines changed

clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -3536,7 +3536,7 @@ CIRGenFunction::buildAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E,
35363536
indices.push_back(i + vi);
35373537
indices.push_back(i + e + vi);
35383538
}
3539-
mlir::cir::ConstantOp idx = builder.getConstInt(loc, PtrDiffTy, vi);
3539+
mlir::cir::ConstantOp idx = builder.getConstInt(loc, SInt32Ty, vi);
35403540
mlir::Value addr = builder.create<mlir::cir::PtrStrideOp>(
35413541
loc, baseAddr.getType(), baseAddr, idx);
35423542
sv = builder.createVecShuffle(loc, Ops[1], Ops[2], indices);

clang/test/CIR/CodeGen/AArch64/neon-misc.c

+24-24
Original file line numberDiff line numberDiff line change
@@ -382,15 +382,15 @@ uint8x8x2_t test_vtrn_u8(uint8x8_t a, uint8x8_t b) {
382382

383383
// CIR-LABEL: vtrn_u8
384384
// CIR: [[PTR:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.ptr<!void>), !cir.ptr<!cir.vector<!u8i x 8>>
385-
// CIR: [[ZERO:%.*]] = cir.const #cir.int<0> : !s64i
386-
// CIR: [[ADDR:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u8i x 8>>, [[ZERO]] : !s64i), !cir.ptr<!cir.vector<!u8i x 8>>
385+
// CIR: [[ZERO:%.*]] = cir.const #cir.int<0> : !s32i
386+
// CIR: [[ADDR:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u8i x 8>>, [[ZERO]] : !s32i), !cir.ptr<!cir.vector<!u8i x 8>>
387387
// CIR: [[RES:%.*]] = cir.vec.shuffle([[INP1:%.*]], [[INP2:%.*]] : !cir.vector<!u8i x 8>)
388388
// CIR-SAME: [#cir.int<0> : !s32i, #cir.int<8> : !s32i, #cir.int<2> : !s32i, #cir.int<10> : !s32i,
389389
// CIR-SAME: #cir.int<4> : !s32i, #cir.int<12> : !s32i, #cir.int<6> : !s32i,
390390
// CIR-SAME: #cir.int<14> : !s32i] : !cir.vector<!u8i x 8>
391391
// CIR: cir.store [[RES]], [[ADDR]] : !cir.vector<!u8i x 8>, !cir.ptr<!cir.vector<!u8i x 8>>
392-
// CIR: [[ONE:%.*]] = cir.const #cir.int<1> : !s64i
393-
// CIR: [[ADDR1:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u8i x 8>>, [[ONE]] : !s64i), !cir.ptr<!cir.vector<!u8i x 8>>
392+
// CIR: [[ONE:%.*]] = cir.const #cir.int<1> : !s32i
393+
// CIR: [[ADDR1:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u8i x 8>>, [[ONE]] : !s32i), !cir.ptr<!cir.vector<!u8i x 8>>
394394
// CIR: [[RES1:%.*]] = cir.vec.shuffle([[INP1]], [[INP2]] : !cir.vector<!u8i x 8>)
395395
// CIR-SAME: [#cir.int<1> : !s32i, #cir.int<9> : !s32i, #cir.int<3> : !s32i, #cir.int<11> : !s32i,
396396
// CIR-SAME: #cir.int<5> : !s32i, #cir.int<13> : !s32i, #cir.int<7> : !s32i, #cir.int<15> : !s32i] :
@@ -412,13 +412,13 @@ uint16x4x2_t test_vtrn_u16(uint16x4_t a, uint16x4_t b) {
412412

413413
// CIR-LABEL: vtrn_u16
414414
// CIR: [[PTR:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.ptr<!void>), !cir.ptr<!cir.vector<!u16i x 4>>
415-
// CIR: [[ZERO:%.*]] = cir.const #cir.int<0> : !s64i
416-
// CIR: [[ADDR:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u16i x 4>>, [[ZERO]] : !s64i), !cir.ptr<!cir.vector<!u16i x 4>>
415+
// CIR: [[ZERO:%.*]] = cir.const #cir.int<0> : !s32i
416+
// CIR: [[ADDR:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u16i x 4>>, [[ZERO]] : !s32i), !cir.ptr<!cir.vector<!u16i x 4>>
417417
// CIR: [[RES:%.*]] = cir.vec.shuffle([[INP1:%.*]], [[INP2:%.*]] : !cir.vector<!u16i x 4>)
418418
// CIR-SAME: [#cir.int<0> : !s32i, #cir.int<4> : !s32i, #cir.int<2> : !s32i, #cir.int<6> : !s32i] : !cir.vector<!u16i x 4>
419419
// CIR: cir.store [[RES]], [[ADDR]] : !cir.vector<!u16i x 4>, !cir.ptr<!cir.vector<!u16i x 4>>
420-
// CIR: [[ONE:%.*]] = cir.const #cir.int<1> : !s64i
421-
// CIR: [[ADDR1:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u16i x 4>>, [[ONE]] : !s64i), !cir.ptr<!cir.vector<!u16i x 4>>
420+
// CIR: [[ONE:%.*]] = cir.const #cir.int<1> : !s32i
421+
// CIR: [[ADDR1:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u16i x 4>>, [[ONE]] : !s32i), !cir.ptr<!cir.vector<!u16i x 4>>
422422
// CIR: [[RES1:%.*]] = cir.vec.shuffle([[INP1]], [[INP2]] : !cir.vector<!u16i x 4>)
423423
// CIR-SAME: [#cir.int<1> : !s32i, #cir.int<5> : !s32i, #cir.int<3> : !s32i, #cir.int<7> : !s32i] :
424424
// CIR-SAME: !cir.vector<!u16i x 4>
@@ -440,13 +440,13 @@ int32x2x2_t test_vtrn_s32(int32x2_t a, int32x2_t b) {
440440

441441
// CIR-LABEL: vtrn_s32
442442
// CIR: [[PTR:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.ptr<!void>), !cir.ptr<!cir.vector<!s32i x 2>>
443-
// CIR: [[ZERO:%.*]] = cir.const #cir.int<0> : !s64i
444-
// CIR: [[ADDR:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!s32i x 2>>, [[ZERO]] : !s64i), !cir.ptr<!cir.vector<!s32i x 2>>
443+
// CIR: [[ZERO:%.*]] = cir.const #cir.int<0> : !s32i
444+
// CIR: [[ADDR:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!s32i x 2>>, [[ZERO]] : !s32i), !cir.ptr<!cir.vector<!s32i x 2>>
445445
// CIR: [[RES:%.*]] = cir.vec.shuffle([[INP1:%.*]], [[INP2:%.*]] : !cir.vector<!s32i x 2>)
446446
// CIR-SAME: [#cir.int<0> : !s32i, #cir.int<2> : !s32i] : !cir.vector<!s32i x 2>
447447
// CIR: cir.store [[RES]], [[ADDR]] : !cir.vector<!s32i x 2>, !cir.ptr<!cir.vector<!s32i x 2>>
448-
// CIR: [[ONE:%.*]] = cir.const #cir.int<1> : !s64i
449-
// CIR: [[ADDR1:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!s32i x 2>>, [[ONE]] : !s64i), !cir.ptr<!cir.vector<!s32i x 2>>
448+
// CIR: [[ONE:%.*]] = cir.const #cir.int<1> : !s32i
449+
// CIR: [[ADDR1:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!s32i x 2>>, [[ONE]] : !s32i), !cir.ptr<!cir.vector<!s32i x 2>>
450450
// CIR: [[RES1:%.*]] = cir.vec.shuffle([[INP1]], [[INP2]] : !cir.vector<!s32i x 2>)
451451
// CIR-SAME: [#cir.int<1> : !s32i, #cir.int<3> : !s32i] :
452452
// CIR-SAME: !cir.vector<!s32i x 2>
@@ -468,16 +468,16 @@ uint8x16x2_t test_vtrnq_u8(uint8x16_t a, uint8x16_t b) {
468468

469469
// CIR-LABEL: vtrnq_u8
470470
// CIR: [[PTR:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.ptr<!void>), !cir.ptr<!cir.vector<!u8i x 16>>
471-
// CIR: [[ZERO:%.*]] = cir.const #cir.int<0> : !s64i
472-
// CIR: [[ADDR:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u8i x 16>>, [[ZERO]] : !s64i), !cir.ptr<!cir.vector<!u8i x 16>>
471+
// CIR: [[ZERO:%.*]] = cir.const #cir.int<0> : !s32i
472+
// CIR: [[ADDR:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u8i x 16>>, [[ZERO]] : !s32i), !cir.ptr<!cir.vector<!u8i x 16>>
473473
// CIR: [[RES:%.*]] = cir.vec.shuffle([[INP1:%.*]], [[INP2:%.*]] : !cir.vector<!u8i x 16>)
474474
// CIR-SAME: [#cir.int<0> : !s32i, #cir.int<16> : !s32i, #cir.int<2> : !s32i, #cir.int<18> : !s32i,
475475
// CIR-SAME: #cir.int<4> : !s32i, #cir.int<20> : !s32i, #cir.int<6> : !s32i, #cir.int<22> : !s32i,
476476
// CIR-SAME: #cir.int<8> : !s32i, #cir.int<24> : !s32i, #cir.int<10> : !s32i, #cir.int<26> : !s32i,
477477
// CIR-SAME: #cir.int<12> : !s32i, #cir.int<28> : !s32i, #cir.int<14> : !s32i, #cir.int<30> : !s32i] : !cir.vector<!u8i x 16>
478478
// CIR: cir.store [[RES]], [[ADDR]] : !cir.vector<!u8i x 16>, !cir.ptr<!cir.vector<!u8i x 16>>
479-
// CIR: [[ONE:%.*]] = cir.const #cir.int<1> : !s64i
480-
// CIR: [[ADDR1:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u8i x 16>>, [[ONE]] : !s64i), !cir.ptr<!cir.vector<!u8i x 16>>
479+
// CIR: [[ONE:%.*]] = cir.const #cir.int<1> : !s32i
480+
// CIR: [[ADDR1:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u8i x 16>>, [[ONE]] : !s32i), !cir.ptr<!cir.vector<!u8i x 16>>
481481
// CIR: [[RES1:%.*]] = cir.vec.shuffle([[INP1]], [[INP2]] : !cir.vector<!u8i x 16>)
482482
// CIR-SAME: [#cir.int<1> : !s32i, #cir.int<17> : !s32i, #cir.int<3> : !s32i, #cir.int<19> : !s32i,
483483
// CIR-SAME: #cir.int<5> : !s32i, #cir.int<21> : !s32i, #cir.int<7> : !s32i, #cir.int<23> : !s32i,
@@ -503,15 +503,15 @@ int16x8x2_t test_vtrnq_s16(int16x8_t a, int16x8_t b) {
503503

504504
// CIR-LABEL: vtrnq_s16
505505
// CIR: [[PTR:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.ptr<!void>), !cir.ptr<!cir.vector<!s16i x 8>>
506-
// CIR: [[ZERO:%.*]] = cir.const #cir.int<0> : !s64i
507-
// CIR: [[ADDR:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!s16i x 8>>, [[ZERO]] : !s64i), !cir.ptr<!cir.vector<!s16i x 8>>
506+
// CIR: [[ZERO:%.*]] = cir.const #cir.int<0> : !s32i
507+
// CIR: [[ADDR:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!s16i x 8>>, [[ZERO]] : !s32i), !cir.ptr<!cir.vector<!s16i x 8>>
508508
// CIR: [[RES:%.*]] = cir.vec.shuffle([[INP1:%.*]], [[INP2:%.*]] : !cir.vector<!s16i x 8>)
509509
// CIR-SAME: [#cir.int<0> : !s32i, #cir.int<8> : !s32i, #cir.int<2> : !s32i, #cir.int<10> : !s32i,
510510
// CIR-SAME: #cir.int<4> : !s32i, #cir.int<12> : !s32i, #cir.int<6> : !s32i,
511511
// CIR-SAME: #cir.int<14> : !s32i] : !cir.vector<!s16i x 8>
512512
// CIR: cir.store [[RES]], [[ADDR]] : !cir.vector<!s16i x 8>, !cir.ptr<!cir.vector<!s16i x 8>>
513-
// CIR: [[ONE:%.*]] = cir.const #cir.int<1> : !s64i
514-
// CIR: [[ADDR1:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!s16i x 8>>, [[ONE]] : !s64i), !cir.ptr<!cir.vector<!s16i x 8>>
513+
// CIR: [[ONE:%.*]] = cir.const #cir.int<1> : !s32i
514+
// CIR: [[ADDR1:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!s16i x 8>>, [[ONE]] : !s32i), !cir.ptr<!cir.vector<!s16i x 8>>
515515
// CIR: [[RES1:%.*]] = cir.vec.shuffle([[INP1]], [[INP2]] : !cir.vector<!s16i x 8>)
516516
// CIR-SAME: [#cir.int<1> : !s32i, #cir.int<9> : !s32i, #cir.int<3> : !s32i, #cir.int<11> : !s32i,
517517
// CIR-SAME: #cir.int<5> : !s32i, #cir.int<13> : !s32i, #cir.int<7> : !s32i, #cir.int<15> : !s32i] :
@@ -533,14 +533,14 @@ uint32x4x2_t test_vtrnq_u32(uint32x4_t a, uint32x4_t b) {
533533

534534
// CIR-LABEL: vtrnq_u32
535535
// CIR: [[PTR:%.*]] = cir.cast(bitcast, {{%.*}} : !cir.ptr<!void>), !cir.ptr<!cir.vector<!u32i x 4>>
536-
// CIR: [[ZERO:%.*]] = cir.const #cir.int<0> : !s64i
537-
// CIR: [[ADDR:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u32i x 4>>, [[ZERO]] : !s64i), !cir.ptr<!cir.vector<!u32i x 4>>
536+
// CIR: [[ZERO:%.*]] = cir.const #cir.int<0> : !s32i
537+
// CIR: [[ADDR:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u32i x 4>>, [[ZERO]] : !s32i), !cir.ptr<!cir.vector<!u32i x 4>>
538538
// CIR: [[RES:%.*]] = cir.vec.shuffle([[INP1:%.*]], [[INP2:%.*]] : !cir.vector<!u32i x 4>)
539539
// CIR-SAME: [#cir.int<0> : !s32i, #cir.int<4> : !s32i, #cir.int<2> : !s32i, #cir.int<6> : !s32i] :
540540
// CIR-SAME: !cir.vector<!u32i x 4>
541541
// CIR: cir.store [[RES]], [[ADDR]] : !cir.vector<!u32i x 4>, !cir.ptr<!cir.vector<!u32i x 4>>
542-
// CIR: [[ONE:%.*]] = cir.const #cir.int<1> : !s64i
543-
// CIR: [[ADDR1:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u32i x 4>>, [[ONE]] : !s64i), !cir.ptr<!cir.vector<!u32i x 4>>
542+
// CIR: [[ONE:%.*]] = cir.const #cir.int<1> : !s32i
543+
// CIR: [[ADDR1:%.*]] = cir.ptr_stride([[PTR]] : !cir.ptr<!cir.vector<!u32i x 4>>, [[ONE]] : !s32i), !cir.ptr<!cir.vector<!u32i x 4>>
544544
// CIR: [[RES1:%.*]] = cir.vec.shuffle([[INP1]], [[INP2]] : !cir.vector<!u32i x 4>)
545545
// CIR-SAME: [#cir.int<1> : !s32i, #cir.int<5> : !s32i, #cir.int<3> : !s32i, #cir.int<7> : !s32i] :
546546
// CIR-SAME: !cir.vector<!u32i x 4>

0 commit comments

Comments
 (0)