llvm-project

Форк
0
/
invariant_load_canonicalize_array_baseptrs.ll 
36 строк · 818.0 Байт
1
; RUN: opt %loadNPMPolly -passes=polly-codegen -S < %s \
2
; RUN:  -polly-invariant-load-hoisting \
3
; RUN:  | FileCheck %s
4

5
; CHECK: %polly.access.A = getelementptr ptr, ptr %A, i64 0
6
; CHECK: %polly.access.A.load = load ptr, ptr %polly.access.A
7
; CHECK: store float 4.200000e+01, ptr %polly.access.A.load
8
; CHECK: store float 4.800000e+01, ptr %polly.access.A.load
9

10
define void @foo(ptr %A) {
11
start:
12
  br label %loop
13

14
loop:
15
  %indvar = phi i64 [0, %start], [%indvar.next, %latch]
16
  %indvar.next = add nsw i64 %indvar, 1
17
  %icmp = icmp slt i64 %indvar.next, 1024
18
  br i1 %icmp, label %body1, label %exit
19

20
body1:
21
  %baseA = load ptr, ptr %A
22
  store float 42.0, ptr %baseA
23
  br label %body2
24

25
body2:
26
  %baseB = load ptr, ptr %A
27
  store float 48.0, ptr %baseB
28
  br label %latch
29

30
latch:
31
  br label %loop
32

33
exit:
34
  ret void
35

36
}
37

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.