~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/CodeGen/SystemZ/vec-const-16.ll

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2015-07-15 17:51:08 UTC
  • Revision ID: package-import@ubuntu.com-20150715175108-l8mynwovkx4zx697
Tags: upstream-3.7~+rc2
ImportĀ upstreamĀ versionĀ 3.7~+rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; Test vector replicates that use VECTOR GENERATE MASK, v2i64 version.
 
2
;
 
3
; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
4
 
 
5
; Test a word-granularity replicate with the lowest value that cannot use
 
6
; VREPIF.
 
7
define <2 x i64> @f1() {
 
8
; CHECK-LABEL: f1:
 
9
; CHECK: vgmf %v24, 16, 16
 
10
; CHECK: br %r14
 
11
  ret <2 x i64> <i64 140737488388096, i64 140737488388096>
 
12
}
 
13
 
 
14
; Test a word-granularity replicate that has the lower 17 bits set.
 
15
define <2 x i64> @f2() {
 
16
; CHECK-LABEL: f2:
 
17
; CHECK: vgmf %v24, 15, 31
 
18
; CHECK: br %r14
 
19
  ret <2 x i64> <i64 562945658585087, i64 562945658585087>
 
20
}
 
21
 
 
22
; Test a word-granularity replicate that has the upper 15 bits set.
 
23
define <2 x i64> @f3() {
 
24
; CHECK-LABEL: f3:
 
25
; CHECK: vgmf %v24, 0, 14
 
26
; CHECK: br %r14
 
27
  ret <2 x i64> <i64 -562945658585088, i64 -562945658585088>
 
28
}
 
29
 
 
30
; Test a word-granularity replicate that has middle bits set.
 
31
define <2 x i64> @f4() {
 
32
; CHECK-LABEL: f4:
 
33
; CHECK: vgmf %v24, 12, 17
 
34
; CHECK: br %r14
 
35
  ret <2 x i64> <i64 4433230884225024, i64 4433230884225024>
 
36
}
 
37
 
 
38
; Test a word-granularity replicate with a wrap-around mask.
 
39
define <2 x i64> @f5() {
 
40
; CHECK-LABEL: f5:
 
41
; CHECK: vgmf %v24, 17, 15
 
42
; CHECK: br %r14
 
43
  ret <2 x i64> <i64 -140737488388097, i64 -140737488388097>
 
44
}
 
45
 
 
46
; Test a doubleword-granularity replicate with the lowest value that cannot
 
47
; use VREPIG.
 
48
define <2 x i64> @f6() {
 
49
; CHECK-LABEL: f6:
 
50
; CHECK: vgmg %v24, 48, 48
 
51
; CHECK: br %r14
 
52
  ret <2 x i64> <i64 32768, i64 32768>
 
53
}
 
54
 
 
55
; Test a doubleword-granularity replicate that has the lower 22 bits set.
 
56
define <2 x i64> @f7() {
 
57
; CHECK-LABEL: f7:
 
58
; CHECK: vgmg %v24, 42, 63
 
59
; CHECK: br %r14
 
60
  ret <2 x i64> <i64 4194303, i64 4194303>
 
61
}
 
62
 
 
63
; Test a doubleword-granularity replicate that has the upper 45 bits set.
 
64
define <2 x i64> @f8() {
 
65
; CHECK-LABEL: f8:
 
66
; CHECK: vgmg %v24, 0, 44
 
67
; CHECK: br %r14
 
68
  ret <2 x i64> <i64 -524288, i64 -524288>
 
69
}
 
70
 
 
71
; Test a doubleword-granularity replicate that has middle bits set.
 
72
define <2 x i64> @f9() {
 
73
; CHECK-LABEL: f9:
 
74
; CHECK: vgmg %v24, 31, 42
 
75
; CHECK: br %r14
 
76
  ret <2 x i64> <i64 8587837440, i64 8587837440>
 
77
}
 
78
 
 
79
; Test a doubleword-granularity replicate with a wrap-around mask.
 
80
define <2 x i64> @f10() {
 
81
; CHECK-LABEL: f10:
 
82
; CHECK: vgmg %v24, 18, 0
 
83
; CHECK: br %r14
 
84
  ret <2 x i64> <i64 -9223301668110598145, i64 -9223301668110598145>
 
85
}