Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

IFX problem

jserf
Beginner
534 Views

Hello,

I am having problems with OMP ATOMIC clauses - IFX cannot compile them into a fortran code.

The code does compile with ifort.

 

The code is large, but the clause is simple (k is distributed;  it will race without atomic):
!$OMP ATOMIC UPDATE
       var(k)=var(k)+factor

 

The error I get is below (first few lines)

LLVM ERROR: Cannot select: 0x6b5d4b0: f32,ch = AtomicLoadAdd<(load store monotonic (s32) on %ir.<badref>)> 0x72ed5d0:1, 0x7444a60, 0x72edb80
0x7444a60: i64 = add 0x72ed5d0, 0x7111720
0x72ed5d0: i64,ch = load<(dereferenceable load (s64) from ``, align 16, !tbaa )> 0x6b5caa0:1, 0x6b5d360, undef:i64
0x6b5d360: i64 = add nuw 0x71115d0, Constant:i64<496>
0x71115d0: i64,ch = load<(load (s64) from got, align 32)> 0x59b1ab0, 0x75da9b0, undef:i64
0x75da9b0: i64 = X86ISD::WrapperRIP TargetGlobalAddress:i64<> 0 [TF=5]
0x7444050: i64 = TargetGlobalAddress<> 0 [TF=5]
0x6fabea0: i64 = undef
0x71113a0: i64 = Constant<496>
0x6fabea0: i64 = undef

 

I do have some ATOMICS that can compile OK, they address scalars and 2-d arrays, not vectors.

Would be grateful for any suggestions.

Thank you.

0 Kudos
1 Reply
Steve_Lionel
Honored Contributor III
481 Views

You will need to attach a (small if possible) test case so that the Intel developers can investigate. Before you do that, try the latest version that was published just the other day.

0 Kudos
Reply