Fortran · 806 bytes Raw Blame History
1 ! Whole-array bulk arithmetic kernels: array-array sub, array-scalar mul/add,
2 ! and scalar-array sub.
3 !
4 ! CHECK: 87
5 ! CHECK: 33
6 ! CHECK: -39
7 ! CHECK: 144
8 ! CHECK: -8
9 ! IR_CHECK: call @afs_array_sub_i32(
10 ! IR_CHECK: call @afs_array_mul_scalar_i32(
11 ! IR_CHECK: call @afs_scalar_sub_array_i32(
12 ! IR_CHECK: call @afs_array_add_scalar_i32(
13 ! ASM_CHECK: _afs_array_sub_i32
14 ! ASM_CHECK: _afs_array_mul_scalar_i32
15 ! ASM_CHECK: _afs_scalar_sub_array_i32
16 ! ASM_CHECK: _afs_array_add_scalar_i32
17 program test_array_bulk_arithmetic
18 implicit none
19 integer :: a(8), b(8), c(8)
20 integer :: i
21
22 do i = 1, 8
23 a(i) = i
24 b(i) = i * 10
25 end do
26
27 c = b - a
28 a = c * 2
29 b = 100 - a
30 c = b + 5
31
32 print *, c(1)
33 print *, c(4)
34 print *, c(8)
35 print *, a(8)
36 print *, b(6)
37 end program test_array_bulk_arithmetic
38