File: operands-to-args-preserve-attributes.ll

package info (click to toggle)
llvm-toolchain-21 1%3A21.1.6-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 2,245,028 kB
  • sloc: cpp: 7,619,726; ansic: 1,434,018; asm: 1,058,748; python: 252,740; f90: 94,671; objc: 70,685; lisp: 42,813; pascal: 18,401; sh: 8,601; ml: 5,111; perl: 4,720; makefile: 3,675; awk: 3,523; javascript: 2,409; xml: 892; fortran: 770
file content (31 lines) | stat: -rw-r--r-- 1,160 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
; RUN: llvm-reduce %s -o %t --abort-on-invalid-reduction --delta-passes=operands-to-args --test FileCheck --test-arg %s --test-arg --check-prefix=INTERESTING --test-arg --input-file
; RUN: FileCheck %s --input-file %t --check-prefix=REDUCED

@a = dso_local global i8 0, align 1
@b = dso_local global i16 0, align 2


declare ptr @callee(ptr %a, i16)

; INTERESTING-LABEL: define ptr @caller(
; INTERESTING: sext
; INTERESTING: icmp

; REDUCED-LABEL: define ptr @caller(ptr %some.ptr, ptr %a, i8 %ld0, ptr %b, i16 %ld1, i32 %conv, i32 %conv1, i1 %cmp, i16 %conv2, ptr %callee.ret) #0 {

; REDUCED: %callee.ret8 = call align 8 ptr @callee(ptr align 8 "some-attr" %some.ptr, i16 signext %conv2) #1

define ptr @caller(ptr %some.ptr) nounwind {
entry:
  %ld0 = load i8, ptr @a, align 1
  %conv = zext i8 %ld0 to i32
  %ld1 = load i16, ptr @b, align 2
  %conv1 = sext i16 %ld1 to i32
  %cmp = icmp sge i32 %conv, %conv1
  %conv2 = sext i1 %cmp to i16
  %callee.ret = call align 8 ptr @callee(ptr align 8 "some-attr" %some.ptr, i16 signext %conv2) nocallback
  ret ptr %callee.ret
}

; REDUCED: attributes #0 = { nounwind }
; REDUCED: attributes #1 = { nocallback }