File: reduce-operands-int.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 (67 lines) | stat: -rw-r--r-- 2,742 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
; Test that llvm-reduce can reduce floating point operands
;
; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=operands-one --test FileCheck --test-arg --check-prefixes=CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t
; RUN: FileCheck --check-prefixes=CHECK,ONE %s < %t

; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=operands-zero --test FileCheck --test-arg --check-prefixes=CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t
; RUN: FileCheck --check-prefixes=CHECK,ZERO %s < %t

; RUN: llvm-reduce --abort-on-invalid-reduction --test FileCheck --test-arg --check-prefixes=CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t
; RUN: FileCheck --check-prefixes=CHECK,ZERO %s < %t

; CHECK-INTERESTINGNESS: = add i32 %
; CHECK-INTERESTINGNESS: = add i32
; CHECK-INTERESTINGNESS: = add i32
; CHECK-INTERESTINGNESS: = add i32
; CHECK-INTERESTINGNESS: = add i32

; CHECK-INTERESTINGNESS: = add <2 x i32> %
; CHECK-INTERESTINGNESS: = add <2 x i32>
; CHECK-INTERESTINGNESS: = add <2 x i32>
; CHECK-INTERESTINGNESS: = add <2 x i32>
; CHECK-INTERESTINGNESS: = add <2 x i32>
; CHECK-INTERESTINGNESS: = add <2 x i32>

; CHECK-LABEL: define {{(void|<2 x i32>)}} @foo(


; ONE: %add0 = add i32 %arg0, 1
; ONE: %add1 = add i32 1, 1
; ONE: %add2 = add i32 1, 0
; ONE: %add3 = add i32 1, 1
; ONE: %add4 = add i32 1, 1
; ONE: %add5 = add <2 x i32> %arg2, splat (i32 1)
; ONE: %add6 = add <2 x i32> splat (i32 1), splat (i32 1)
; ONE: %add7 = add <2 x i32> splat (i32 1), zeroinitializer
; ONE: %add8 = add <2 x i32> splat (i32 1), splat (i32 1)
; ONE: %add9 = add <2 x i32> splat (i32 1), splat (i32 1)
; ONE: %add10 = add <2 x i32> splat (i32 1), splat (i32 1)


; ZERO: %add0 = add i32 %arg0, 0
; ZERO: %add1 = add i32 0, 0
; ZERO: %add2 = add i32 0, 0
; ZERO: %add3 = add i32 0, 0
; ZERO: %add4 = add i32 0, 0
; ZERO: %add5 = add <2 x i32> %arg2, zeroinitializer
; ZERO: %add6 = add <2 x i32> zeroinitializer, zeroinitializer
; ZERO: %add7 = add <2 x i32> zeroinitializer, zeroinitializer
; ZERO: %add8 = add <2 x i32> zeroinitializer, zeroinitializer
; ZERO: %add9 = add <2 x i32> zeroinitializer, zeroinitializer
; ZERO: %add10 = add <2 x i32> zeroinitializer, zeroinitializer

define void @foo(i32 %arg0, i32 %arg1, <2 x i32> %arg2, <2 x i32> %arg3) {
bb0:
  %add0 = add i32 %arg0, %arg1
  %add1 = add i32 %arg0, %arg1
  %add2 = add i32 %arg0, 0
  %add3 = add i32 %arg0, 1
  %add4 = add i32 %arg0, undef
  %add5 = add <2 x i32> %arg2, %arg3
  %add6 = add <2 x i32> %arg2, %arg3
  %add7 = add <2 x i32> %arg2, zeroinitializer
  %add8 = add <2 x i32> %arg2, <i32 1, i32 1>
  %add9 = add <2 x i32> %arg2, undef
  %add10 = add <2 x i32> %arg2, <i32 4, i32 6>
  ret void
}