annotate test/Transforms/InstCombine/cabs-array.ll @ 147:c2174574ed3a

LLVM 10
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 14 Aug 2019 16:55:33 +0900
parents 3a76565eade5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
134
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
1 ; RUN: opt < %s -instcombine -S | FileCheck %s
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
2
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
3 define double @std_cabs([2 x double] %z) {
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
4 ; CHECK-LABEL: define double @std_cabs(
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
5 ; CHECK: tail call double @cabs(
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
6 %call = tail call double @cabs([2 x double] %z)
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
7 ret double %call
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
8 }
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
9
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
10 define float @std_cabsf([2 x float] %z) {
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
11 ; CHECK-LABEL: define float @std_cabsf(
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
12 ; CHECK: tail call float @cabsf(
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
13 %call = tail call float @cabsf([2 x float] %z)
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
14 ret float %call
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
15 }
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
16
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
17 define fp128 @std_cabsl([2 x fp128] %z) {
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
18 ; CHECK-LABEL: define fp128 @std_cabsl(
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
19 ; CHECK: tail call fp128 @cabsl(
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
20 %call = tail call fp128 @cabsl([2 x fp128] %z)
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
21 ret fp128 %call
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
22 }
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
23
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
24 define double @fast_cabs([2 x double] %z) {
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
25 ; CHECK-LABEL: define double @fast_cabs(
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
26 ; CHECK: %real = extractvalue [2 x double] %z, 0
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
27 ; CHECK: %imag = extractvalue [2 x double] %z, 1
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
28 ; CHECK: %1 = fmul fast double %real, %real
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
29 ; CHECK: %2 = fmul fast double %imag, %imag
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
30 ; CHECK: %3 = fadd fast double %1, %2
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
31 ; CHECK: %cabs = call fast double @llvm.sqrt.f64(double %3)
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
32 ; CHECK: ret double %cabs
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
33 %call = tail call fast double @cabs([2 x double] %z)
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
34 ret double %call
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
35 }
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
36
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
37 define float @fast_cabsf([2 x float] %z) {
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
38 ; CHECK-LABEL: define float @fast_cabsf(
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
39 ; CHECK: %real = extractvalue [2 x float] %z, 0
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
40 ; CHECK: %imag = extractvalue [2 x float] %z, 1
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
41 ; CHECK: %1 = fmul fast float %real, %real
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
42 ; CHECK: %2 = fmul fast float %imag, %imag
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
43 ; CHECK: %3 = fadd fast float %1, %2
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
44 ; CHECK: %cabs = call fast float @llvm.sqrt.f32(float %3)
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
45 ; CHECK: ret float %cabs
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
46 %call = tail call fast float @cabsf([2 x float] %z)
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
47 ret float %call
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
48 }
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
49
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
50 define fp128 @fast_cabsl([2 x fp128] %z) {
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
51 ; CHECK-LABEL: define fp128 @fast_cabsl(
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
52 ; CHECK: %real = extractvalue [2 x fp128] %z, 0
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
53 ; CHECK: %imag = extractvalue [2 x fp128] %z, 1
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
54 ; CHECK: %1 = fmul fast fp128 %real, %real
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
55 ; CHECK: %2 = fmul fast fp128 %imag, %imag
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
56 ; CHECK: %3 = fadd fast fp128 %1, %2
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
57 ; CHECK: %cabs = call fast fp128 @llvm.sqrt.f128(fp128 %3)
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
58 ; CHECK: ret fp128 %cabs
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
59 %call = tail call fast fp128 @cabsl([2 x fp128] %z)
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
60 ret fp128 %call
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
61 }
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
62
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
63 declare double @cabs([2 x double])
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
64 declare float @cabsf([2 x float])
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
65 declare fp128 @cabsl([2 x fp128])