1414// CHECK-NEXT: entry:
1515// CHECK-NEXT: [[TMP0:%.*]] = xor i32 [[REGADDR:%.*]], 524288
1616// CHECK-NEXT: [[CONV_I:%.*]] = trunc i32 [[TMP0]] to i20
17- // CHECK-NEXT: [[TMP1:%.*]] = inttoptr i20 [[CONV_I]] to ptr
18- // CHECK-NEXT: [[TMP2:%.*]] = tail call noundef i32 @llvm.aie2.read.tm(ptr [[TMP1]])
19- // CHECK-NEXT: ret i32 [[TMP2]]
17+ // CHECK-NEXT: [[TMP1:%.*]] = inttoptr i20 [[CONV_I]] to ptr addrspace(15)
18+ // CHECK-NEXT: [[TMP2:%.*]] = addrspacecast ptr addrspace(15) [[TMP1]] to ptr
19+ // CHECK-NEXT: [[TMP3:%.*]] = tail call noundef i32 @llvm.aie2.read.tm(ptr [[TMP2]])
20+ // CHECK-NEXT: ret i32 [[TMP3]]
2021//
2122uint32 test_read_tm (uint32 regAddr) {
2223 return read_tm (regAddr);
@@ -26,8 +27,9 @@ uint32 test_read_tm(uint32 regAddr) {
2627// CHECK-NEXT: entry:
2728// CHECK-NEXT: [[TMP0:%.*]] = xor i32 [[REGADDR:%.*]], 524288
2829// CHECK-NEXT: [[CONV_I:%.*]] = trunc i32 [[TMP0]] to i20
29- // CHECK-NEXT: [[TMP1:%.*]] = inttoptr i20 [[CONV_I]] to ptr
30- // CHECK-NEXT: tail call void @llvm.aie2.write.tm(i32 [[REGVAL:%.*]], ptr [[TMP1]])
30+ // CHECK-NEXT: [[TMP1:%.*]] = inttoptr i20 [[CONV_I]] to ptr addrspace(15)
31+ // CHECK-NEXT: [[TMP2:%.*]] = addrspacecast ptr addrspace(15) [[TMP1]] to ptr
32+ // CHECK-NEXT: tail call void @llvm.aie2.write.tm(i32 [[REGVAL:%.*]], ptr [[TMP2]])
3133// CHECK-NEXT: ret void
3234//
3335void test_write_tm (uint32 regVal, uint32 regAddr) {
@@ -38,9 +40,10 @@ void test_write_tm(uint32 regVal, uint32 regAddr) {
3840// CHECK-NEXT: entry:
3941// CHECK-NEXT: [[ADD_I:%.*]] = add i32 [[TMADDRSPACESTART:%.*]], [[REGADDR:%.*]]
4042// CHECK-NEXT: [[CONV_I:%.*]] = trunc i32 [[ADD_I]] to i20
41- // CHECK-NEXT: [[TMP0:%.*]] = inttoptr i20 [[CONV_I]] to ptr
42- // CHECK-NEXT: [[TMP1:%.*]] = tail call noundef i32 @llvm.aie2.read.tm(ptr [[TMP0]])
43- // CHECK-NEXT: ret i32 [[TMP1]]
43+ // CHECK-NEXT: [[TMP0:%.*]] = inttoptr i20 [[CONV_I]] to ptr addrspace(15)
44+ // CHECK-NEXT: [[TMP1:%.*]] = addrspacecast ptr addrspace(15) [[TMP0]] to ptr
45+ // CHECK-NEXT: [[TMP2:%.*]] = tail call noundef i32 @llvm.aie2.read.tm(ptr [[TMP1]])
46+ // CHECK-NEXT: ret i32 [[TMP2]]
4447//
4548uint32 test_read_tm (uint32 regAddr, uint32 TMAddrSpaceStart) {
4649 return read_tm (regAddr, TMAddrSpaceStart);
@@ -50,8 +53,9 @@ uint32 test_read_tm(uint32 regAddr, uint32 TMAddrSpaceStart) {
5053// CHECK-NEXT: entry:
5154// CHECK-NEXT: [[ADD_I:%.*]] = add i32 [[TMADDRSPACESTART:%.*]], [[REGADDR:%.*]]
5255// CHECK-NEXT: [[CONV_I:%.*]] = trunc i32 [[ADD_I]] to i20
53- // CHECK-NEXT: [[TMP0:%.*]] = inttoptr i20 [[CONV_I]] to ptr
54- // CHECK-NEXT: tail call void @llvm.aie2.write.tm(i32 [[REGVAL:%.*]], ptr [[TMP0]])
56+ // CHECK-NEXT: [[TMP0:%.*]] = inttoptr i20 [[CONV_I]] to ptr addrspace(15)
57+ // CHECK-NEXT: [[TMP1:%.*]] = addrspacecast ptr addrspace(15) [[TMP0]] to ptr
58+ // CHECK-NEXT: tail call void @llvm.aie2.write.tm(i32 [[REGVAL:%.*]], ptr [[TMP1]])
5559// CHECK-NEXT: ret void
5660//
5761void test_write_tm (uint32 regVal, uint32 regAddr, uint32 TMAddrSpaceStart) {
0 commit comments