@@ -378,13 +378,167 @@ func.func @_QPtest_real8(%arg0: !fir.ref<f64> {fir.bindc_name = "x"}) -> f64 {
378378func.func private @llvm.round.f32(f32) -> f32
379379func.func private @llvm.round.f64(f64) -> f64
380380
381+ //--- asin_fast.fir
382+ // RUN: fir-opt %t/asin_fast.fir --fir-to-llvm-ir="target=x86_64-unknown-linux-gnu" | FileCheck %t/asin_fast.fir
383+ // CHECK: @_QPtest_real4
384+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr.asin({{%[A-Za-z0-9._]+}}) : (f32) -> f32
385+
386+ // CHECK: @_QPtest_real8
387+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr.asin({{%[A-Za-z0-9._]+}}) : (f64) -> f64
388+
389+ func.func @_QPtest_real4(%arg0: !fir.ref<f32> {fir.bindc_name = "x"}) -> f32 {
390+ %0 = fir.alloca f32 {bindc_name = "test_real4", uniq_name = "_QFtest_real4Etest_real4"}
391+ %1 = fir.load %arg0 : !fir.ref<f32>
392+ %2 = math.asin %1 : f32
393+ fir.store %2 to %0 : !fir.ref<f32>
394+ %3 = fir.load %0 : !fir.ref<f32>
395+ return %3 : f32
396+ }
397+ func.func @_QPtest_real8(%arg0: !fir.ref<f64> {fir.bindc_name = "x"}) -> f64 {
398+ %0 = fir.alloca f64 {bindc_name = "test_real8", uniq_name = "_QFtest_real8Etest_real8"}
399+ %1 = fir.load %arg0 : !fir.ref<f64>
400+ %2 = math.asin %1 : f64
401+ fir.store %2 to %0 : !fir.ref<f64>
402+ %3 = fir.load %0 : !fir.ref<f64>
403+ return %3 : f64
404+ }
405+
406+ //--- asin_relaxed.fir
407+ // RUN: fir-opt %t/asin_relaxed.fir --fir-to-llvm-ir="target=x86_64-unknown-linux-gnu" | FileCheck %t/asin_relaxed.fir
408+ // CHECK: @_QPtest_real4
409+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr.asin({{%[A-Za-z0-9._]+}}) : (f32) -> f32
410+
411+ // CHECK: @_QPtest_real8
412+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr.asin({{%[A-Za-z0-9._]+}}) : (f64) -> f64
413+
414+ func.func @_QPtest_real4(%arg0: !fir.ref<f32> {fir.bindc_name = "x"}) -> f32 {
415+ %0 = fir.alloca f32 {bindc_name = "test_real4", uniq_name = "_QFtest_real4Etest_real4"}
416+ %1 = fir.load %arg0 : !fir.ref<f32>
417+ %2 = math.asin %1 : f32
418+ fir.store %2 to %0 : !fir.ref<f32>
419+ %3 = fir.load %0 : !fir.ref<f32>
420+ return %3 : f32
421+ }
422+ func.func @_QPtest_real8(%arg0: !fir.ref<f64> {fir.bindc_name = "x"}) -> f64 {
423+ %0 = fir.alloca f64 {bindc_name = "test_real8", uniq_name = "_QFtest_real8Etest_real8"}
424+ %1 = fir.load %arg0 : !fir.ref<f64>
425+ %2 = math.asin %1 : f64
426+ fir.store %2 to %0 : !fir.ref<f64>
427+ %3 = fir.load %0 : !fir.ref<f64>
428+ return %3 : f64
429+ }
430+
431+ //--- asin_precise.fir
432+ // RUN: fir-opt %t/asin_precise.fir --fir-to-llvm-ir="target=x86_64-unknown-linux-gnu" | FileCheck %t/asin_precise.fir
433+ // CHECK: @_QPtest_real4
434+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.call @asinf({{%[A-Za-z0-9._]+}}) : (f32) -> f32
435+
436+ // CHECK: @_QPtest_real8
437+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.call @asin({{%[A-Za-z0-9._]+}}) : (f64) -> f64
438+
439+ func.func @_QPtest_real4(%arg0: !fir.ref<f32> {fir.bindc_name = "x"}) -> f32 {
440+ %0 = fir.alloca f32 {bindc_name = "test_real4", uniq_name = "_QFtest_real4Etest_real4"}
441+ %1 = fir.load %arg0 : !fir.ref<f32>
442+ %2 = fir.call @asinf(%1) : (f32) -> f32
443+ fir.store %2 to %0 : !fir.ref<f32>
444+ %3 = fir.load %0 : !fir.ref<f32>
445+ return %3 : f32
446+ }
447+ func.func @_QPtest_real8(%arg0: !fir.ref<f64> {fir.bindc_name = "x"}) -> f64 {
448+ %0 = fir.alloca f64 {bindc_name = "test_real8", uniq_name = "_QFtest_real8Etest_real8"}
449+ %1 = fir.load %arg0 : !fir.ref<f64>
450+ %2 = fir.call @asin(%1) : (f64) -> f64
451+ fir.store %2 to %0 : !fir.ref<f64>
452+ %3 = fir.load %0 : !fir.ref<f64>
453+ return %3 : f64
454+ }
455+ func.func private @asinf(f32) -> f32
456+ func.func private @asin(f64) -> f64
457+
458+ //--- acos_fast.fir
459+ // RUN: fir-opt %t/acos_fast.fir --fir-to-llvm-ir="target=x86_64-unknown-linux-gnu" | FileCheck %t/acos_fast.fir
460+ // CHECK: @_QPtest_real4
461+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr.acos({{%[A-Za-z0-9._]+}}) : (f32) -> f32
462+
463+ // CHECK: @_QPtest_real8
464+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr.acos({{%[A-Za-z0-9._]+}}) : (f64) -> f64
465+
466+ func.func @_QPtest_real4(%arg0: !fir.ref<f32> {fir.bindc_name = "x"}) -> f32 {
467+ %0 = fir.alloca f32 {bindc_name = "test_real4", uniq_name = "_QFtest_real4Etest_real4"}
468+ %1 = fir.load %arg0 : !fir.ref<f32>
469+ %2 = math.acos %1 : f32
470+ fir.store %2 to %0 : !fir.ref<f32>
471+ %3 = fir.load %0 : !fir.ref<f32>
472+ return %3 : f32
473+ }
474+ func.func @_QPtest_real8(%arg0: !fir.ref<f64> {fir.bindc_name = "x"}) -> f64 {
475+ %0 = fir.alloca f64 {bindc_name = "test_real8", uniq_name = "_QFtest_real8Etest_real8"}
476+ %1 = fir.load %arg0 : !fir.ref<f64>
477+ %2 = math.acos %1 : f64
478+ fir.store %2 to %0 : !fir.ref<f64>
479+ %3 = fir.load %0 : !fir.ref<f64>
480+ return %3 : f64
481+ }
482+
483+ //--- acos_relaxed.fir
484+ // RUN: fir-opt %t/acos_relaxed.fir --fir-to-llvm-ir="target=x86_64-unknown-linux-gnu" | FileCheck %t/acos_relaxed.fir
485+ // CHECK: @_QPtest_real4
486+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr.acos({{%[A-Za-z0-9._]+}}) : (f32) -> f32
487+
488+ // CHECK: @_QPtest_real8
489+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr.acos({{%[A-Za-z0-9._]+}}) : (f64) -> f64
490+
491+ func.func @_QPtest_real4(%arg0: !fir.ref<f32> {fir.bindc_name = "x"}) -> f32 {
492+ %0 = fir.alloca f32 {bindc_name = "test_real4", uniq_name = "_QFtest_real4Etest_real4"}
493+ %1 = fir.load %arg0 : !fir.ref<f32>
494+ %2 = math.acos %1 : f32
495+ fir.store %2 to %0 : !fir.ref<f32>
496+ %3 = fir.load %0 : !fir.ref<f32>
497+ return %3 : f32
498+ }
499+ func.func @_QPtest_real8(%arg0: !fir.ref<f64> {fir.bindc_name = "x"}) -> f64 {
500+ %0 = fir.alloca f64 {bindc_name = "test_real8", uniq_name = "_QFtest_real8Etest_real8"}
501+ %1 = fir.load %arg0 : !fir.ref<f64>
502+ %2 = math.acos %1 : f64
503+ fir.store %2 to %0 : !fir.ref<f64>
504+ %3 = fir.load %0 : !fir.ref<f64>
505+ return %3 : f64
506+ }
507+
508+ //--- acos_precise.fir
509+ // RUN: fir-opt %t/acos_precise.fir --fir-to-llvm-ir="target=x86_64-unknown-linux-gnu" | FileCheck %t/acos_precise.fir
510+ // CHECK: @_QPtest_real4
511+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.call @acosf({{%[A-Za-z0-9._]+}}) : (f32) -> f32
512+
513+ // CHECK: @_QPtest_real8
514+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.call @acos({{%[A-Za-z0-9._]+}}) : (f64) -> f64
515+
516+ func.func @_QPtest_real4(%arg0: !fir.ref<f32> {fir.bindc_name = "x"}) -> f32 {
517+ %0 = fir.alloca f32 {bindc_name = "test_real4", uniq_name = "_QFtest_real4Etest_real4"}
518+ %1 = fir.load %arg0 : !fir.ref<f32>
519+ %2 = fir.call @acosf(%1) : (f32) -> f32
520+ fir.store %2 to %0 : !fir.ref<f32>
521+ %3 = fir.load %0 : !fir.ref<f32>
522+ return %3 : f32
523+ }
524+ func.func @_QPtest_real8(%arg0: !fir.ref<f64> {fir.bindc_name = "x"}) -> f64 {
525+ %0 = fir.alloca f64 {bindc_name = "test_real8", uniq_name = "_QFtest_real8Etest_real8"}
526+ %1 = fir.load %arg0 : !fir.ref<f64>
527+ %2 = fir.call @acos(%1) : (f64) -> f64
528+ fir.store %2 to %0 : !fir.ref<f64>
529+ %3 = fir.load %0 : !fir.ref<f64>
530+ return %3 : f64
531+ }
532+ func.func private @acosf(f32) -> f32
533+ func.func private @acos(f64) -> f64
534+
381535//--- atan_fast.fir
382536// RUN: fir-opt %t/atan_fast.fir --fir-to-llvm-ir="target=x86_64-unknown-linux-gnu" | FileCheck %t/atan_fast.fir
383537// CHECK: @_QPtest_real4
384- // CHECK: {{%[A-Za-z0-9._]+}} = llvm.call @atanf ({{%[A-Za-z0-9._]+}}) : (f32) -> f32
538+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr.atan ({{%[A-Za-z0-9._]+}}) : (f32) -> f32
385539
386540// CHECK: @_QPtest_real8
387- // CHECK: {{%[A-Za-z0-9._]+}} = llvm.call @ atan({{%[A-Za-z0-9._]+}}) : (f64) -> f64
541+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr. atan({{%[A-Za-z0-9._]+}}) : (f64) -> f64
388542
389543func.func @_QPtest_real4(%arg0: !fir.ref<f32> {fir.bindc_name = "x"}) -> f32 {
390544 %0 = fir.alloca f32 {bindc_name = "test_real4", uniq_name = "_QFtest_real4Etest_real4"}
@@ -406,10 +560,10 @@ func.func @_QPtest_real8(%arg0: !fir.ref<f64> {fir.bindc_name = "x"}) -> f64 {
406560//--- atan_relaxed.fir
407561// RUN: fir-opt %t/atan_relaxed.fir --fir-to-llvm-ir="target=x86_64-unknown-linux-gnu" | FileCheck %t/atan_relaxed.fir
408562// CHECK: @_QPtest_real4
409- // CHECK: {{%[A-Za-z0-9._]+}} = llvm.call @atanf ({{%[A-Za-z0-9._]+}}) : (f32) -> f32
563+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr.atan ({{%[A-Za-z0-9._]+}}) : (f32) -> f32
410564
411565// CHECK: @_QPtest_real8
412- // CHECK: {{%[A-Za-z0-9._]+}} = llvm.call @ atan({{%[A-Za-z0-9._]+}}) : (f64) -> f64
566+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr. atan({{%[A-Za-z0-9._]+}}) : (f64) -> f64
413567
414568func.func @_QPtest_real4(%arg0: !fir.ref<f32> {fir.bindc_name = "x"}) -> f32 {
415569 %0 = fir.alloca f32 {bindc_name = "test_real4", uniq_name = "_QFtest_real4Etest_real4"}
@@ -458,10 +612,10 @@ func.func private @atan(f64) -> f64
458612//--- atan2_fast.fir
459613// RUN: fir-opt %t/atan2_fast.fir --fir-to-llvm-ir="target=x86_64-unknown-linux-gnu" | FileCheck %t/atan2_fast.fir
460614// CHECK: @_QPtest_real4
461- // CHECK: {{%[A-Za-z0-9._]+}} = llvm.call @atan2f ({{%[A-Za-z0-9._]+}}, {{%[A-Za-z0-9._]+}}) : (f32, f32) -> f32
615+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr.atan2 ({{%[A-Za-z0-9._]+}}, {{%[A-Za-z0-9._]+}}) : (f32, f32) -> f32
462616
463617// CHECK: @_QPtest_real8
464- // CHECK: {{%[A-Za-z0-9._]+}} = llvm.call @ atan2({{%[A-Za-z0-9._]+}}, {{%[A-Za-z0-9._]+}}) : (f64, f64) -> f64
618+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr. atan2({{%[A-Za-z0-9._]+}}, {{%[A-Za-z0-9._]+}}) : (f64, f64) -> f64
465619
466620func.func @_QPtest_real4(%arg0: !fir.ref<f32> {fir.bindc_name = "x"}, %arg1: !fir.ref<f32> {fir.bindc_name = "y"}) -> f32 {
467621 %0 = fir.alloca f32 {bindc_name = "test_real4", uniq_name = "_QFtest_real4Etest_real4"}
@@ -485,10 +639,10 @@ func.func @_QPtest_real8(%arg0: !fir.ref<f64> {fir.bindc_name = "x"}, %arg1: !fi
485639//--- atan2_relaxed.fir
486640// RUN: fir-opt %t/atan2_relaxed.fir --fir-to-llvm-ir="target=x86_64-unknown-linux-gnu" | FileCheck %t/atan2_relaxed.fir
487641// CHECK: @_QPtest_real4
488- // CHECK: {{%[A-Za-z0-9._]+}} = llvm.call @atan2f ({{%[A-Za-z0-9._]+}}, {{%[A-Za-z0-9._]+}}) : (f32, f32) -> f32
642+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr.atan2 ({{%[A-Za-z0-9._]+}}, {{%[A-Za-z0-9._]+}}) : (f32, f32) -> f32
489643
490644// CHECK: @_QPtest_real8
491- // CHECK: {{%[A-Za-z0-9._]+}} = llvm.call @ atan2({{%[A-Za-z0-9._]+}}, {{%[A-Za-z0-9._]+}}) : (f64, f64) -> f64
645+ // CHECK: {{%[A-Za-z0-9._]+}} = llvm.intr. atan2({{%[A-Za-z0-9._]+}}, {{%[A-Za-z0-9._]+}}) : (f64, f64) -> f64
492646
493647func.func @_QPtest_real4(%arg0: !fir.ref<f32> {fir.bindc_name = "x"}, %arg1: !fir.ref<f32> {fir.bindc_name = "y"}) -> f32 {
494648 %0 = fir.alloca f32 {bindc_name = "test_real4", uniq_name = "_QFtest_real4Etest_real4"}
0 commit comments