@@ -176,15 +176,18 @@ entry:
176
176
%8 = call %struct._ZTS5State.State addrspace (4 )* @llvm.ptr.annotation.p4s_struct._ZTS5State.States (%struct._ZTS5State.State addrspace (4 )* %7 , i8* getelementptr inbounds ([27 x i8 ], [27 x i8 ]* @.str.3 , i32 0 , i32 0 ), i8* getelementptr inbounds ([14 x i8 ], [14 x i8 ]* @.str.1 , i32 0 , i32 0 ), i32 0 , i8* null ) #6
177
177
store %struct._ZTS5State.State addrspace (4 )* %8 , %struct._ZTS5State.State addrspace (4 )** %z , align 8 , !tbaa !5
178
178
; CHECK-LLVM: %[[WHOLE_STRUCT_LOAD_FOR_FLOAT:[0-9]+]] = [[WHOLE_STRUCT_LOAD_INST]][[STRUCT_FUNC_PARAM]]
179
- ; CHECK-LLVM: %[[FLOAT_FIELD_GEP:[[:alnum:].]+]] = getelementptr inbounds %struct{{.*}}State, ptr addrspace(4) %[[WHOLE_STRUCT_LOAD_FOR_FLOAT]], i32 0, i32 0
179
+ ; CHECK-LLVM: %[[WHOLE_STRUCT_LOAD_FOR_FLOAT_BC:[0-9]+]] = bitcast ptr addrspace(4) %[[WHOLE_STRUCT_LOAD_FOR_FLOAT]]
180
+ ; CHECK-LLVM: %[[FLOAT_FIELD_GEP:[[:alnum:].]+]] = getelementptr inbounds %struct{{.*}}State, ptr addrspace(4) %[[WHOLE_STRUCT_LOAD_FOR_FLOAT_BC]], i32 0, i32 0
180
181
; CHECK-LLVM: %[[INTRINSIC_CALL:[[:alnum:].]+]] = call ptr addrspace(4) @llvm.ptr.annotation.p4.p0(ptr addrspace(4) %[[FLOAT_FIELD_GEP]], ptr [[PARAM_3_CACHE_127]]
181
- ; CHECK-LLVM: store ptr addrspace(4) %[[INTRINSIC_CALL]], ptr %[[FLOAT_VAR]]
182
+ ; CHECK-LLVM: %[[INTRINSIC_CALL_BC:[0-9]+]] = bitcast ptr addrspace(4) %[[INTRINSIC_CALL]]
183
+ ; CHECK-LLVM: store ptr addrspace(4) %[[INTRINSIC_CALL_BC]], ptr %[[FLOAT_VAR]]
182
184
%9 = load %struct._ZTS5State.State addrspace (4 )*, %struct._ZTS5State.State addrspace (4 )** %C.addr , align 8 , !tbaa !5
183
185
%Field1 = getelementptr inbounds %struct._ZTS5State.State , %struct._ZTS5State.State addrspace (4 )* %9 , i32 0 , i32 0
184
186
%10 = call float addrspace (4 )* @llvm.ptr.annotation.p4f32 (float addrspace (4 )* %Field1 , i8* getelementptr inbounds ([27 x i8 ], [27 x i8 ]* @.str.4 , i32 0 , i32 0 ), i8* getelementptr inbounds ([14 x i8 ], [14 x i8 ]* @.str.1 , i32 0 , i32 0 ), i32 0 , i8* null ) #6
185
187
store float addrspace (4 )* %10 , float addrspace (4 )** %x , align 8 , !tbaa !5
186
188
; CHECK-LLVM: %[[WHOLE_STRUCT_LOAD_FOR_INT:[0-9]+]] = [[WHOLE_STRUCT_LOAD_INST]][[STRUCT_FUNC_PARAM]]
187
- ; CHECK-LLVM: %[[INT_FIELD_GEP:[[:alnum:].]+]] = getelementptr inbounds %struct{{.*}}State, ptr addrspace(4) %[[WHOLE_STRUCT_LOAD_FOR_INT]], i32 0, i32 1
189
+ ; CHECK-LLVM: %[[WHOLE_STRUCT_LOAD_FOR_INT_BC:[0-9]+]] = bitcast ptr addrspace(4) %[[WHOLE_STRUCT_LOAD_FOR_INT]]
190
+ ; CHECK-LLVM: %[[INT_FIELD_GEP:[[:alnum:].]+]] = getelementptr inbounds %struct{{.*}}State, ptr addrspace(4) %[[WHOLE_STRUCT_LOAD_FOR_INT_BC]], i32 0, i32 1
188
191
; The annotation for the succeeding intrinsic isn't required to be preserved
189
192
; during translation
190
193
; CHECK-LLVM: store ptr addrspace(4) %{{.*}}, ptr %[[INT_VAR]]
@@ -210,15 +213,17 @@ entry:
210
213
store double addrspace (4 )* %18 , double addrspace (4 )** %t , align 8 , !tbaa !5
211
214
; CHECK-LLVM: %[[FLOAT_FUNC_PARAM_LOAD:[[:alnum:].]+]] = load ptr addrspace(4), ptr %[[FLOAT_FUNC_PARAM]]
212
215
; CHECK-LLVM: %[[INTRINSIC_CALL:[[:alnum:].]+]] = call ptr addrspace(4) @llvm.ptr.annotation.p4.p0(ptr addrspace(4) %[[FLOAT_FUNC_PARAM_LOAD]], ptr [[PARAM_3_CACHE_0]]
213
- ; CHECK-LLVM: store float 5.000000e+00, ptr addrspace(4) %[[INTRINSIC_CALL]]
216
+ ; CHECK-LLVM: %[[INTRINSIC_CALL_BC:[0-9]+]] = bitcast ptr addrspace(4) %[[INTRINSIC_CALL]]
217
+ ; CHECK-LLVM: store float 5.000000e+00, ptr addrspace(4) %[[INTRINSIC_CALL_BC]]
214
218
%19 = load float addrspace (4 )*, float addrspace (4 )** %A.addr , align 8 , !tbaa !5
215
219
%20 = call float addrspace (4 )* @llvm.ptr.annotation.p4f32 (float addrspace (4 )* %19 , i8* getelementptr inbounds ([25 x i8 ], [25 x i8 ]* @.str , i32 0 , i32 0 ), i8* getelementptr inbounds ([14 x i8 ], [14 x i8 ]* @.str.1 , i32 0 , i32 0 ), i32 0 , i8* null ) #6
216
220
store float 5 .000000e+00 , float addrspace (4 )* %20 , align 4 , !tbaa !5
217
221
%21 = bitcast i32* %s to i8*
218
222
call void @llvm.lifetime.start.p0i8 (i64 4 , i8* %21 ) #5
219
223
; CHECK-LLVM: %[[INT1_FUNC_PARAM_LOAD:[[:alnum:].]+]] = load ptr addrspace(4), ptr %[[INT_FUNC_PARAM]]
220
224
; CHECK-LLVM: %[[INTRINSIC_CALL:[[:alnum:].]+]] = call ptr addrspace(4) @llvm.ptr.annotation.p4.p0(ptr addrspace(4) %[[INT1_FUNC_PARAM_LOAD]], ptr [[PARAM_12_CACHE_0]]
221
- ; CHECK-LLVM: %[[INTRINSIC_RESULT_LOAD:[[:alnum:].]+]] = load i32, ptr addrspace(4) %[[INTRINSIC_CALL]]
225
+ ; CHECK-LLVM: %[[INTRINSIC_CALL_BC:[0-9]+]] = bitcast ptr addrspace(4) %[[INTRINSIC_CALL]]
226
+ ; CHECK-LLVM: %[[INTRINSIC_RESULT_LOAD:[[:alnum:].]+]] = load i32, ptr addrspace(4) %[[INTRINSIC_CALL_BC]]
222
227
; CHECK-LLVM: store i32 %[[INTRINSIC_RESULT_LOAD]], ptr %[[INT_VAR_1]]
223
228
%22 = load i32 addrspace (4 )*, i32 addrspace (4 )** %B.addr , align 8 , !tbaa !5
224
229
%23 = call i32 addrspace (4 )* @llvm.ptr.annotation.p4i32 (i32 addrspace (4 )* %22 , i8* getelementptr inbounds ([26 x i8 ], [26 x i8 ]* @.str.2 , i32 0 , i32 0 ), i8* getelementptr inbounds ([14 x i8 ], [14 x i8 ]* @.str.1 , i32 0 , i32 0 ), i32 0 , i8* null ) #6
0 commit comments