@@ -38,9 +38,9 @@ void *test_opt_out(void *data, long index) {
3838// CHECK-LABEL: @test_remaining_size(
3939// CHECK-NEXT: entry:
4040// CHECK-NEXT: [[DATA1:%.*]] = getelementptr inbounds nuw i8, ptr addrspace(200) [[DATA:%.*]], i64 4
41- // CHECK-NEXT: [[CUR_OFFSET :%.*]] = tail call i64 @llvm.cheri.cap.offset .get.i64(ptr addrspace(200) nonnull [[DATA1]])
42- // CHECK-NEXT: [[CUR_LEN :%.*]] = tail call i64 @llvm.cheri.cap.length .get.i64(ptr addrspace(200) nonnull [[DATA1]])
43- // CHECK-NEXT: [[REMAINING_BYTES:%.*]] = sub i64 [[CUR_LEN ]], [[CUR_OFFSET ]]
41+ // CHECK-NEXT: [[CUR_TOP :%.*]] = tail call i64 @llvm.cheri.cap.top .get.i64(ptr addrspace(200) nonnull [[DATA1]])
42+ // CHECK-NEXT: [[CUR_ADDR :%.*]] = tail call i64 @llvm.cheri.cap.address .get.i64(ptr addrspace(200) nonnull [[DATA1]])
43+ // CHECK-NEXT: [[REMAINING_BYTES:%.*]] = sub i64 [[CUR_TOP ]], [[CUR_ADDR ]]
4444// CHECK-NEXT: [[TMP0:%.*]] = tail call ptr addrspace(200) @llvm.cheri.cap.bounds.set.i64(ptr addrspace(200) nonnull [[DATA1]], i64 [[REMAINING_BYTES]])
4545// CHECK-NEXT: ret ptr addrspace(200) [[TMP0]]
4646//
@@ -56,9 +56,9 @@ void *test_remaining_size(void *data, long index) {
5656// CHECK-LABEL: @test_remaining_size_not_array(
5757// CHECK-NEXT: entry:
5858// CHECK-NEXT: [[F:%.*]] = getelementptr inbounds nuw i8, ptr addrspace(200) [[DATA:%.*]], i64 4
59- // CHECK-NEXT: [[CUR_OFFSET :%.*]] = tail call i64 @llvm.cheri.cap.offset .get.i64(ptr addrspace(200) nonnull [[F]])
60- // CHECK-NEXT: [[CUR_LEN :%.*]] = tail call i64 @llvm.cheri.cap.length .get.i64(ptr addrspace(200) nonnull [[F]])
61- // CHECK-NEXT: [[REMAINING_BYTES:%.*]] = sub i64 [[CUR_LEN ]], [[CUR_OFFSET ]]
59+ // CHECK-NEXT: [[CUR_TOP :%.*]] = tail call i64 @llvm.cheri.cap.top .get.i64(ptr addrspace(200) nonnull [[F]])
60+ // CHECK-NEXT: [[CUR_ADDR :%.*]] = tail call i64 @llvm.cheri.cap.address .get.i64(ptr addrspace(200) nonnull [[F]])
61+ // CHECK-NEXT: [[REMAINING_BYTES:%.*]] = sub i64 [[CUR_TOP ]], [[CUR_ADDR ]]
6262// CHECK-NEXT: [[TMP0:%.*]] = tail call ptr addrspace(200) @llvm.cheri.cap.bounds.set.i64(ptr addrspace(200) nonnull [[F]], i64 [[REMAINING_BYTES]])
6363// CHECK-NEXT: ret ptr addrspace(200) [[TMP0]]
6464//
@@ -79,9 +79,9 @@ void *test_remaining_size_not_array(void *data, long index) {
7979// CHECK-LABEL: @test_remaining_size_on_type(
8080// CHECK-NEXT: entry:
8181// CHECK-NEXT: [[DATA1:%.*]] = getelementptr inbounds nuw i8, ptr addrspace(200) [[DATA:%.*]], i64 4
82- // CHECK-NEXT: [[CUR_OFFSET :%.*]] = tail call i64 @llvm.cheri.cap.offset .get.i64(ptr addrspace(200) nonnull [[DATA1]])
83- // CHECK-NEXT: [[CUR_LEN :%.*]] = tail call i64 @llvm.cheri.cap.length .get.i64(ptr addrspace(200) nonnull [[DATA1]])
84- // CHECK-NEXT: [[REMAINING_BYTES:%.*]] = sub i64 [[CUR_LEN ]], [[CUR_OFFSET ]]
82+ // CHECK-NEXT: [[CUR_TOP :%.*]] = tail call i64 @llvm.cheri.cap.top .get.i64(ptr addrspace(200) nonnull [[DATA1]])
83+ // CHECK-NEXT: [[CUR_ADDR :%.*]] = tail call i64 @llvm.cheri.cap.address .get.i64(ptr addrspace(200) nonnull [[DATA1]])
84+ // CHECK-NEXT: [[REMAINING_BYTES:%.*]] = sub i64 [[CUR_TOP ]], [[CUR_ADDR ]]
8585// CHECK-NEXT: [[BOUNDED_REMAINING_SIZE:%.*]] = tail call i64 @llvm.umin.i64(i64 [[REMAINING_BYTES]], i64 16)
8686// CHECK-NEXT: [[TMP0:%.*]] = tail call ptr addrspace(200) @llvm.cheri.cap.bounds.set.i64(ptr addrspace(200) nonnull [[DATA1]], i64 [[BOUNDED_REMAINING_SIZE]])
8787// CHECK-NEXT: ret ptr addrspace(200) [[TMP0]]
@@ -124,9 +124,9 @@ void *test_remaining_size_ignored_on_typedef(void *data, long index) {
124124// CHECK-LABEL: @test_remaining_size_maximum(
125125// CHECK-NEXT: entry:
126126// CHECK-NEXT: [[DATA1:%.*]] = getelementptr inbounds nuw i8, ptr addrspace(200) [[DATA:%.*]], i64 4
127- // CHECK-NEXT: [[CUR_OFFSET :%.*]] = tail call i64 @llvm.cheri.cap.offset .get.i64(ptr addrspace(200) nonnull [[DATA1]])
128- // CHECK-NEXT: [[CUR_LEN :%.*]] = tail call i64 @llvm.cheri.cap.length .get.i64(ptr addrspace(200) nonnull [[DATA1]])
129- // CHECK-NEXT: [[REMAINING_BYTES:%.*]] = sub i64 [[CUR_LEN ]], [[CUR_OFFSET ]]
127+ // CHECK-NEXT: [[CUR_TOP :%.*]] = tail call i64 @llvm.cheri.cap.top .get.i64(ptr addrspace(200) nonnull [[DATA1]])
128+ // CHECK-NEXT: [[CUR_ADDR :%.*]] = tail call i64 @llvm.cheri.cap.address .get.i64(ptr addrspace(200) nonnull [[DATA1]])
129+ // CHECK-NEXT: [[REMAINING_BYTES:%.*]] = sub i64 [[CUR_TOP ]], [[CUR_ADDR ]]
130130// CHECK-NEXT: [[BOUNDED_REMAINING_SIZE:%.*]] = tail call i64 @llvm.umin.i64(i64 [[REMAINING_BYTES]], i64 127)
131131// CHECK-NEXT: [[TMP0:%.*]] = tail call ptr addrspace(200) @llvm.cheri.cap.bounds.set.i64(ptr addrspace(200) nonnull [[DATA1]], i64 [[BOUNDED_REMAINING_SIZE]])
132132// CHECK-NEXT: ret ptr addrspace(200) [[TMP0]]
@@ -143,9 +143,9 @@ void *test_remaining_size_maximum(void *data, long index) {
143143// CHECK-LABEL: @test_vla(
144144// CHECK-NEXT: entry:
145145// CHECK-NEXT: [[VLA:%.*]] = getelementptr inbounds nuw i8, ptr addrspace(200) [[DATA:%.*]], i64 4
146- // CHECK-NEXT: [[CUR_OFFSET :%.*]] = tail call i64 @llvm.cheri.cap.offset .get.i64(ptr addrspace(200) nonnull [[VLA]])
147- // CHECK-NEXT: [[CUR_LEN :%.*]] = tail call i64 @llvm.cheri.cap.length .get.i64(ptr addrspace(200) nonnull [[VLA]])
148- // CHECK-NEXT: [[REMAINING_BYTES:%.*]] = sub i64 [[CUR_LEN ]], [[CUR_OFFSET ]]
146+ // CHECK-NEXT: [[CUR_TOP :%.*]] = tail call i64 @llvm.cheri.cap.top .get.i64(ptr addrspace(200) nonnull [[VLA]])
147+ // CHECK-NEXT: [[CUR_ADDR :%.*]] = tail call i64 @llvm.cheri.cap.address .get.i64(ptr addrspace(200) nonnull [[VLA]])
148+ // CHECK-NEXT: [[REMAINING_BYTES:%.*]] = sub i64 [[CUR_TOP ]], [[CUR_ADDR ]]
149149// CHECK-NEXT: [[TMP0:%.*]] = tail call ptr addrspace(200) @llvm.cheri.cap.bounds.set.i64(ptr addrspace(200) nonnull [[VLA]], i64 [[REMAINING_BYTES]])
150150// CHECK-NEXT: ret ptr addrspace(200) [[TMP0]]
151151//
0 commit comments