|
87 | 87 | ; sin_cos_pi<13, 5, false, 2, 2>();
|
88 | 88 | ; log<64, 44, true, 24, 22>();
|
89 | 89 | ; exp<44, 34, false, 20, 20>();
|
| 90 | +; exp<68, 68, false, 20, 20>(); |
90 | 91 | ; });
|
91 | 92 | ; return 0;
|
92 | 93 | ; }
|
|
125 | 126 | ; CHECK-SPIRV: 4 TypeInt [[Ty_44:[0-9]+]] 44 0
|
126 | 127 | ; CHECK-SPIRV: 4 TypeInt [[Ty_34:[0-9]+]] 34 0
|
127 | 128 | ; CHECK-SPIRV: 4 TypeInt [[Ty_66:[0-9]+]] 66 0
|
| 129 | +; CHECK-SPIRV: 4 TypeInt [[Ty_68:[0-9]+]] 68 0 |
128 | 130 |
|
129 | 131 | ; CHECK-SPIRV: 6 Load [[Ty_13]] [[Sqrt_InId:[0-9]+]]
|
130 | 132 | ; CHECK-SPIRV-NEXT: 9 FixedSqrtINTEL [[Ty_5]] [[#]] [[Sqrt_InId]] 0 2 2 0 0
|
|
167 | 169 | ; CHECK-SPIRV-NEXT: 9 FixedSinCosINTEL [[Ty_66]] [[SinCos_ResultId:[0-9]+]] [[SinCos_InId]] 1 3 2 0 0
|
168 | 170 | ; CHECK-SPIRV: 3 Store [[#]] [[SinCos_ResultId]]
|
169 | 171 |
|
| 172 | +; CHECK-SPIRV: 6 Load [[Ty_68]] [[ResId:[0-9]+]] |
| 173 | +; CHECK-SPIRV-NEXT: 5 Store [[PtrId:[0-9]+]] [[ResId]] |
| 174 | +; CHECK-SPIRV-NEXT: 4 Load [[Ty_68]] [[ExpInId2:[0-9]+]] [[PtrId]] |
| 175 | +; CHECK-SPIRV-NEXT: 9 FixedExpINTEL [[Ty_68]] [[#]] [[ExpInId2]] 0 20 20 0 0 |
| 176 | + |
170 | 177 | ; CHECK-LLVM: call i5 @intel_arbitrary_fixed_sqrt.i5.i13(i13 %[[#]], i1 false, i32 2, i32 2, i32 0, i32 0)
|
171 | 178 | ; CHECK-LLVM: call i13 @intel_arbitrary_fixed_sqrt.i13.i5(i5 %[[#]], i1 false, i32 2, i32 2, i32 0, i32 0)
|
172 | 179 | ; CHECK-LLVM: call i13 @intel_arbitrary_fixed_sqrt.i13.i5(i5 %[[#]], i1 false, i32 2, i32 2, i32 0, i32 0)
|
|
181 | 188 | ; CHECK-LLVM: call i44 @intel_arbitrary_fixed_log.i44.i64(i64 %[[#]], i1 true, i32 24, i32 22, i32 0, i32 0)
|
182 | 189 | ; CHECK-LLVM: call i34 @intel_arbitrary_fixed_exp.i34.i44(i44 %[[#]], i1 false, i32 20, i32 20, i32 0, i32 0)
|
183 | 190 | ; CHECK-LLVM: call i66 @intel_arbitrary_fixed_sincos.i66.i34(i34 %[[#]], i1 true, i32 3, i32 2, i32 0, i32 0)
|
| 191 | +; CHECK-LLVM: call i68 @intel_arbitrary_fixed_exp.i68.i68(i68 %[[#]], i1 false, i32 20, i32 20, i32 0, i32 0) |
184 | 192 |
|
185 | 193 | ; ModuleID = 'ap_fixed.cpp'
|
186 | 194 | source_filename = "ap_fixed.cpp"
|
@@ -213,6 +221,8 @@ $_Z3expILi44ELi34ELb0ELi20ELi20EEvv = comdat any
|
213 | 221 |
|
214 | 222 | $_Z7sin_cosILi31ELi20ELb1ELi10ELi12EEvv_ = comdat any
|
215 | 223 |
|
| 224 | +$_Z3expILi68ELi68ELb0ELi20ELi20EEvv = comdat any |
| 225 | + |
216 | 226 | ; Function Attrs: norecurse
|
217 | 227 | define dso_local spir_kernel void @_ZTSZ4mainE15kernel_function() #0 !kernel_arg_addr_space !4 !kernel_arg_access_qual !4 !kernel_arg_type !4 !kernel_arg_base_type !4 !kernel_arg_type_qual !4 {
|
218 | 228 | entry:
|
@@ -246,6 +256,7 @@ entry:
|
246 | 256 | call spir_func void @_Z3logILi64ELi44ELb1ELi24ELi22EEvv()
|
247 | 257 | call spir_func void @_Z3expILi44ELi34ELb0ELi20ELi20EEvv()
|
248 | 258 | call spir_func void @_Z7sin_cosILi31ELi20ELb1ELi10ELi12EEvv_()
|
| 259 | + call spir_func void @_Z3expILi68ELi68ELb0ELi20ELi20EEvv() |
249 | 260 | ret void
|
250 | 261 | }
|
251 | 262 |
|
@@ -507,6 +518,33 @@ entry:
|
507 | 518 | ret void
|
508 | 519 | }
|
509 | 520 |
|
| 521 | +; Function Attrs: norecurse nounwind |
| 522 | +define linkonce_odr dso_local spir_func void @_Z3expILi68ELi68ELb0ELi20ELi20EEvv() #3 comdat { |
| 523 | +entry: |
| 524 | + %a = alloca i68, align 8 |
| 525 | + %a.ascast = addrspacecast i68* %a to i68 addrspace(4)* |
| 526 | + %ap_fixed_Exp = alloca i68, align 8 |
| 527 | + %ap_fixed_Exp.ascast = addrspacecast i68* %ap_fixed_Exp to i68 addrspace(4)* |
| 528 | + %tmp = alloca i68, align 8 |
| 529 | + %tmp.ascast = addrspacecast i68* %tmp to i68 addrspace(4)* |
| 530 | + %indirect-arg-temp = alloca i68, align 8 |
| 531 | + %0 = bitcast i68* %a to i8* |
| 532 | + call void @llvm.lifetime.start.p0i8(i64 16, i8* %0) |
| 533 | + %1 = bitcast i68* %ap_fixed_Exp to i8* |
| 534 | + call void @llvm.lifetime.start.p0i8(i64 16, i8* %1) |
| 535 | + %2 = load i68, i68 addrspace(4)* %a.ascast, align 8 |
| 536 | + store i68 %2, i68* %indirect-arg-temp, align 8 |
| 537 | + call spir_func void @_Z21__spirv_FixedExpINTELILi68ELi68EEU7_ExtIntIXT0_EEiU7_ExtIntIXT_EEibiiii(i68 addrspace(4)* sret(i68) align 8 %tmp.ascast, i68* byval(i68) align 8 %indirect-arg-temp, i1 zeroext false, i32 20, i32 20, i32 0, i32 0) #4 |
| 538 | + %3 = load i68, i68 addrspace(4)* %tmp.ascast, align 8 |
| 539 | + store i68 %3, i68 addrspace(4)* %ap_fixed_Exp.ascast, align 8 |
| 540 | + %4 = bitcast i68* %ap_fixed_Exp to i8* |
| 541 | + call void @llvm.lifetime.end.p0i8(i64 16, i8* %4) |
| 542 | + %5 = bitcast i68* %a to i8* |
| 543 | + call void @llvm.lifetime.end.p0i8(i64 16, i8* %5) |
| 544 | + ret void |
| 545 | +} |
| 546 | + |
| 547 | + |
510 | 548 | ; Function Attrs: nounwind
|
511 | 549 | declare dso_local spir_func signext i5 @_Z22__spirv_FixedSqrtINTELILi13ELi5EEU7_ExtIntIXT0_EEiU7_ExtIntIXT_EEibiiii(i13 signext, i1 zeroext, i32, i32, i32, i32) #4
|
512 | 550 |
|
@@ -546,6 +584,9 @@ declare dso_local spir_func i34 @_Z21__spirv_FixedExpINTELILi44ELi34EEU7_ExtIntI
|
546 | 584 | ; Function Attrs: nounwind
|
547 | 585 | declare dso_local spir_func void @_Z24__spirv_FixedSinCosINTELILi34ELi66EEU7_ExtIntIXmlLi2ET0_EEiU7_ExtIntIXT_EEibiiii(i66 addrspace(4)* sret(i66) align 8, i34, i1 zeroext, i32, i32, i32, i32) #4
|
548 | 586 |
|
| 587 | +; Function Attrs: convergent nounwind |
| 588 | +declare dso_local spir_func void @_Z21__spirv_FixedExpINTELILi68ELi68EEU7_ExtIntIXT0_EEiU7_ExtIntIXT_EEibiiii(i68 addrspace(4)* sret(i68) align 8, i68* byval(i68) align 8, i1 zeroext, i32, i32, i32, i32) #4 |
| 589 | + |
549 | 590 | attributes #0 = { norecurse "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "sycl-module-id"="ap_fixed.cpp" "uniform-work-group-size"="true" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
550 | 591 | attributes #1 = { argmemonly nounwind willreturn }
|
551 | 592 | attributes #2 = { inlinehint norecurse "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
|
0 commit comments