reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    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
   68
   69
   70
   71
   72
   73
   74
   75
   76
   77
   78
   79
   80
   81
   82
   83
   84
   85
   86
   87
   88
   89
   90
   91
   92
   93
   94
   95
   96
   97
   98
   99
  100
  101
  102
  103
  104
  105
  106
  107
  108
  109
  110
  111
  112
  113
  114
  115
  116
  117
  118
  119
  120
  121
  122
  123
  124
  125
  126
  127
  128
  129
  130
  131
  132
  133
  134
  135
  136
  137
  138
  139
; RUN: llc -march=mips < %s
; RUN: llc -march=mips -mattr=+msa,+fp64,+mips32r2 < %s
; RUN: llc -march=mipsel < %s
; RUN: llc -march=mipsel -mattr=+msa,+fp64,+mips32r2 < %s

; This test originally failed for MSA with a
; `Num < NumOperands && "Invalid child # of SDNode!"' assertion.
; It should at least successfully build.

define void @autogen_SD525530439(i8*, i32*, i64*, i32, i64, i8) {
BB:
  %A4 = alloca i32
  %A3 = alloca double
  %A2 = alloca <1 x double>
  %A1 = alloca <8 x double>
  %A = alloca i64
  %L = load i8, i8* %0
  store i64 33695, i64* %A
  %E = extractelement <4 x i32> zeroinitializer, i32 3
  %Shuff = shufflevector <2 x i32> <i32 -1, i32 -1>, <2 x i32> <i32 -1, i32 -1>, <2 x i32> <i32 2, i32 0>
  %I = insertelement <4 x i16> zeroinitializer, i16 -11642, i32 0
  %B = lshr <8 x i32> <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
  %ZE = fpext float 0x3B64A2B880000000 to double
  %Sl = select i1 true, i16 -1, i16 -11642
  %L5 = load i8, i8* %0
  store i8 0, i8* %0
  %E6 = extractelement <4 x i32> zeroinitializer, i32 2
  %Shuff7 = shufflevector <8 x i1> zeroinitializer, <8 x i1> zeroinitializer, <8 x i32> <i32 undef, i32 7, i32 9, i32 11, i32 13, i32 15, i32 1, i32 undef>
  %I8 = insertelement <4 x i32> zeroinitializer, i32 %3, i32 3
  %B9 = sub i32 71140, 439732
  %BC = bitcast <2 x i32> <i32 -1, i32 -1> to <2 x float>
  %Sl10 = select i1 true, i32* %1, i32* %1
  %Cmp = icmp sge <8 x i64> zeroinitializer, zeroinitializer
  %L11 = load i32, i32* %Sl10
  store <1 x double> zeroinitializer, <1 x double>* %A2
  %E12 = extractelement <4 x i16> zeroinitializer, i32 0
  %Shuff13 = shufflevector <1 x i64> zeroinitializer, <1 x i64> zeroinitializer, <1 x i32> undef
  %I14 = insertelement <1 x i16> zeroinitializer, i16 %Sl, i32 0
  %B15 = or i16 -1, %E12
  %BC16 = bitcast <4 x i32> zeroinitializer to <4 x float>
  %Sl17 = select i1 true, i64 %4, i64 %4
  %Cmp18 = fcmp ugt float 0xC5ABB1BF80000000, 0x3EEF3D6300000000
  br label %CF75

CF75:                                             ; preds = %CF75, %BB
  %L19 = load i32, i32* %Sl10
  store i32 %L11, i32* %Sl10
  %E20 = extractelement <4 x i32> zeroinitializer, i32 1
  %Shuff21 = shufflevector <4 x i32> zeroinitializer, <4 x i32> %I8, <4 x i32> <i32 undef, i32 2, i32 4, i32 6>
  %I22 = insertelement <4 x float> %BC16, float 0x3EEF3D6300000000, i32 2
  %B23 = shl i32 71140, 439732
  %ZE24 = fpext <4 x float> %I22 to <4 x double>
  %Sl25 = select i1 %Cmp18, i32 %L11, i32 %L11
  %Cmp26 = icmp ne i32 %E20, %L19
  br i1 %Cmp26, label %CF75, label %CF76

CF76:                                             ; preds = %CF75
  %L27 = load i32, i32* %Sl10
  store i32 439732, i32* %Sl10
  %E28 = extractelement <4 x i32> %Shuff21, i32 3
  %Shuff29 = shufflevector <8 x i32> <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>, <8 x i32> <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>, <8 x i32> <i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 0>
  %I30 = insertelement <8 x i1> %Shuff7, i1 %Cmp18, i32 4
  %Sl31 = select i1 %Cmp18, i32 %3, i32 %B23
  %Cmp32 = icmp ugt i32 0, %3
  br label %CF74

CF74:                                             ; preds = %CF74, %CF80, %CF78, %CF76
  %L33 = load i64, i64* %2
  store i32 71140, i32* %Sl10
  %E34 = extractelement <4 x i32> zeroinitializer, i32 1
  %Shuff35 = shufflevector <1 x i16> zeroinitializer, <1 x i16> zeroinitializer, <1 x i32> undef
  %I36 = insertelement <4 x i16> zeroinitializer, i16 -11642, i32 0
  %B37 = mul <8 x i32> <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>, %Shuff29
  %Sl38 = select i1 %Cmp18, double 0.000000e+00, double 0x2BA9DB480DA732C6
  %Cmp39 = icmp sgt i16 -11642, %Sl
  br i1 %Cmp39, label %CF74, label %CF80

CF80:                                             ; preds = %CF74
  %L40 = load i8, i8* %0
  store i32 0, i32* %Sl10
  %E41 = extractelement <8 x i64> zeroinitializer, i32 1
  %Shuff42 = shufflevector <1 x i16> %I14, <1 x i16> %I14, <1 x i32> undef
  %I43 = insertelement <4 x i16> %I36, i16 -11642, i32 0
  %FC = fptoui float 0x455CA2B080000000 to i16
  %Sl44 = select i1 %Cmp18, i1 %Cmp18, i1 %Cmp39
  br i1 %Sl44, label %CF74, label %CF78

CF78:                                             ; preds = %CF80
  %L45 = load i32, i32* %Sl10
  store i8 %L5, i8* %0
  %E46 = extractelement <8 x i1> %Shuff7, i32 2
  br i1 %E46, label %CF74, label %CF77

CF77:                                             ; preds = %CF77, %CF78
  %Shuff47 = shufflevector <4 x i16> %I43, <4 x i16> zeroinitializer, <4 x i32> <i32 5, i32 undef, i32 1, i32 3>
  %I48 = insertelement <1 x i16> %Shuff42, i16 %Sl, i32 0
  %B49 = mul i8 0, %L40
  %FC50 = uitofp i32 %3 to double
  %Sl51 = select i1 %Sl44, i32 %L27, i32 0
  %Cmp52 = icmp sge i8 %B49, 0
  br i1 %Cmp52, label %CF77, label %CF79

CF79:                                             ; preds = %CF77
  %L53 = load i32, i32* %Sl10
  store i8 %L40, i8* %0
  %E54 = extractelement <4 x i32> zeroinitializer, i32 1
  %Shuff55 = shufflevector <4 x i32> %Shuff21, <4 x i32> %I8, <4 x i32> <i32 4, i32 6, i32 undef, i32 2>
  %I56 = insertelement <4 x i32> zeroinitializer, i32 %Sl51, i32 2
  %Tr = trunc <1 x i64> %Shuff13 to <1 x i16>
  %Sl57 = select i1 %Cmp18, <2 x i32> <i32 -1, i32 -1>, <2 x i32> <i32 -1, i32 -1>
  %Cmp58 = icmp uge <4 x i32> <i32 -1, i32 -1, i32 -1, i32 -1>, %I56
  %L59 = load i8, i8* %0
  store <1 x double> zeroinitializer, <1 x double>* %A2
  %E60 = extractelement <4 x i32> zeroinitializer, i32 0
  %Shuff61 = shufflevector <4 x i32> %I8, <4 x i32> %I8, <4 x i32> <i32 undef, i32 1, i32 undef, i32 undef>
  %I62 = insertelement <4 x i16> zeroinitializer, i16 %E12, i32 1
  %B63 = and <4 x i32> %Shuff61, <i32 -1, i32 -1, i32 -1, i32 -1>
  %PC = bitcast double* %A3 to i32*
  %Sl64 = select i1 %Cmp18, <4 x i32> %Shuff61, <4 x i32> %Shuff55
  %Cmp65 = icmp sgt i32 439732, %3
  br label %CF

CF:                                               ; preds = %CF79
  %L66 = load i32, i32* %Sl10
  store i32 %E6, i32* %PC
  %E67 = extractelement <4 x i32> <i32 -1, i32 -1, i32 -1, i32 -1>, i32 2
  %Shuff68 = shufflevector <4 x i32> %Sl64, <4 x i32> %I8, <4 x i32> <i32 5, i32 undef, i32 1, i32 undef>
  %I69 = insertelement <4 x i16> %Shuff47, i16 %Sl, i32 3
  %B70 = sdiv <4 x i64> zeroinitializer, zeroinitializer
  %FC71 = sitofp i32 %L66 to double
  %Sl72 = select i1 %Cmp18, i64 %4, i64 %4
  %Cmp73 = icmp eq <4 x i64> zeroinitializer, %B70
  store i32 %B23, i32* %PC
  store i32 %3, i32* %PC
  store i32 %3, i32* %Sl10
  store i32 %L27, i32* %1
  store i32 0, i32* %PC
  ret void
}