ivanradanov wrote:

For reference, this is a test that exhibits the issue:
```
#include <stdio.h>

#define N 6
#define SLICE1 1:2:2
#define SLICE2 2:3
int main() {
  int darr[N][N];
  for (int i = 0; i < N; i++)
    for (int j = 0; j < N; j++)
      darr[i][j] = 100 + 10 * i + j;

#pragma omp target enter data map(alloc: darr[0:N][0:N])
#pragma omp target update to(darr[SLICE1][SLICE2])

  for (int i = 0; i < N; i++) {
    for (int j = 0; j < N; j++) {
      printf("\t%d", darr[i][j]);
    }
    printf("\n");
  }
  printf("\n");

  for (int i = 0; i < N; i++)
    for (int j = 0; j < N; j++)
      darr[i][j] = 0;

#pragma omp target update from(darr[SLICE1][SLICE2])
#pragma omp target exit data map(delete: darr[0:N][0:N])

  for (int i = 0; i < N; i++) {
    for (int j = 0; j < N; j++) {
      printf("\t%d", darr[i][j]);
    }
    printf("\n");
  }
  printf("\n");

  return 0;
}
```

Prior to patch:
```
        100     101     102     103     104     105
        110     111     112     113     114     115
        120     121     122     123     124     125
        130     131     132     133     134     135
        140     141     142     143     144     145
        150     151     152     153     154     155

        0       0       0       0       0       0
        0       0       0       0       0       0
        0       0       122     0       0       0
        0       0       0       0       0       0
        0       0       142     0       0       0
        0       0       0       0       0       0
```

After this patch:
```
        100     101     102     103     104     105
        110     111     112     113     114     115
        120     121     122     123     124     125                             
        130     131     132     133     134     135                             
                                                                                
                                                                                
     
        140     141     142     143     144     145
        150     151     152     153     154     155                             
  
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
           
        0       0       0       0       0       0
        0       0       112     113     114     0                               
  
        0       0       0       0       0       0
        0       0       132     133     134     0
        0       0       0       0       0       0
        0       0       0       0       0       0
```

https://github.com/llvm/llvm-project/pull/156889
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to