1486ed885SArthur Eubanks; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2b280ee1dSBjorn Pettersson; RUN: opt < %s -passes=instsimplify -S | FileCheck %s 3486ed885SArthur Eubanks 4486ed885SArthur Eubanksdeclare float @llvm.amdgcn.cubeid(float, float, float) 5486ed885SArthur Eubanks 6*04b944e2SNikita Popovdefine void @test(ptr %p) { 7486ed885SArthur Eubanks; CHECK-LABEL: @test( 8*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 4.000000e+00, ptr [[P:%.*]] 9*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 2.000000e+00, ptr [[P]] 10*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 4.000000e+00, ptr [[P]] 11*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 2.000000e+00, ptr [[P]] 12*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 0.000000e+00, ptr [[P]] 13*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 0.000000e+00, ptr [[P]] 14*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 5.000000e+00, ptr [[P]] 15*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 2.000000e+00, ptr [[P]] 16*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 5.000000e+00, ptr [[P]] 17*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 2.000000e+00, ptr [[P]] 18*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 0.000000e+00, ptr [[P]] 19*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 0.000000e+00, ptr [[P]] 20*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 4.000000e+00, ptr [[P]] 21*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 3.000000e+00, ptr [[P]] 22*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 4.000000e+00, ptr [[P]] 23*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 3.000000e+00, ptr [[P]] 24*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 0.000000e+00, ptr [[P]] 25*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 0.000000e+00, ptr [[P]] 26*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 5.000000e+00, ptr [[P]] 27*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 3.000000e+00, ptr [[P]] 28*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 5.000000e+00, ptr [[P]] 29*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 3.000000e+00, ptr [[P]] 30*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 0.000000e+00, ptr [[P]] 31*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 0.000000e+00, ptr [[P]] 32*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 4.000000e+00, ptr [[P]] 33*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 2.000000e+00, ptr [[P]] 34*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 4.000000e+00, ptr [[P]] 35*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 2.000000e+00, ptr [[P]] 36*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 1.000000e+00, ptr [[P]] 37*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 1.000000e+00, ptr [[P]] 38*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 5.000000e+00, ptr [[P]] 39*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 2.000000e+00, ptr [[P]] 40*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 5.000000e+00, ptr [[P]] 41*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 2.000000e+00, ptr [[P]] 42*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 1.000000e+00, ptr [[P]] 43*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 1.000000e+00, ptr [[P]] 44*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 4.000000e+00, ptr [[P]] 45*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 3.000000e+00, ptr [[P]] 46*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 4.000000e+00, ptr [[P]] 47*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 3.000000e+00, ptr [[P]] 48*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 1.000000e+00, ptr [[P]] 49*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 1.000000e+00, ptr [[P]] 50*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 5.000000e+00, ptr [[P]] 51*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 3.000000e+00, ptr [[P]] 52*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 5.000000e+00, ptr [[P]] 53*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 3.000000e+00, ptr [[P]] 54*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 1.000000e+00, ptr [[P]] 55*04b944e2SNikita Popov; CHECK-NEXT: store volatile float 1.000000e+00, ptr [[P]] 56486ed885SArthur Eubanks; CHECK-NEXT: ret void 57486ed885SArthur Eubanks; 58486ed885SArthur Eubanks %p3p4p5 = call float @llvm.amdgcn.cubeid(float +3.0, float +4.0, float +5.0) 59*04b944e2SNikita Popov store volatile float %p3p4p5, ptr %p 60486ed885SArthur Eubanks %p3p5p4 = call float @llvm.amdgcn.cubeid(float +3.0, float +5.0, float +4.0) 61*04b944e2SNikita Popov store volatile float %p3p5p4, ptr %p 62486ed885SArthur Eubanks %p4p3p5 = call float @llvm.amdgcn.cubeid(float +4.0, float +3.0, float +5.0) 63*04b944e2SNikita Popov store volatile float %p4p3p5, ptr %p 64486ed885SArthur Eubanks %p4p5p3 = call float @llvm.amdgcn.cubeid(float +4.0, float +5.0, float +3.0) 65*04b944e2SNikita Popov store volatile float %p4p5p3, ptr %p 66486ed885SArthur Eubanks %p5p3p4 = call float @llvm.amdgcn.cubeid(float +5.0, float +3.0, float +4.0) 67*04b944e2SNikita Popov store volatile float %p5p3p4, ptr %p 68486ed885SArthur Eubanks %p5p4p3 = call float @llvm.amdgcn.cubeid(float +5.0, float +4.0, float +3.0) 69*04b944e2SNikita Popov store volatile float %p5p4p3, ptr %p 70486ed885SArthur Eubanks %p3p4n5 = call float @llvm.amdgcn.cubeid(float +3.0, float +4.0, float -5.0) 71*04b944e2SNikita Popov store volatile float %p3p4n5, ptr %p 72486ed885SArthur Eubanks %p3p5n4 = call float @llvm.amdgcn.cubeid(float +3.0, float +5.0, float -4.0) 73*04b944e2SNikita Popov store volatile float %p3p5n4, ptr %p 74486ed885SArthur Eubanks %p4p3n5 = call float @llvm.amdgcn.cubeid(float +4.0, float +3.0, float -5.0) 75*04b944e2SNikita Popov store volatile float %p4p3n5, ptr %p 76486ed885SArthur Eubanks %p4p5n3 = call float @llvm.amdgcn.cubeid(float +4.0, float +5.0, float -3.0) 77*04b944e2SNikita Popov store volatile float %p4p5n3, ptr %p 78486ed885SArthur Eubanks %p5p3n4 = call float @llvm.amdgcn.cubeid(float +5.0, float +3.0, float -4.0) 79*04b944e2SNikita Popov store volatile float %p5p3n4, ptr %p 80486ed885SArthur Eubanks %p5p4n3 = call float @llvm.amdgcn.cubeid(float +5.0, float +4.0, float -3.0) 81*04b944e2SNikita Popov store volatile float %p5p4n3, ptr %p 82486ed885SArthur Eubanks %p3n4p5 = call float @llvm.amdgcn.cubeid(float +3.0, float -4.0, float +5.0) 83*04b944e2SNikita Popov store volatile float %p3n4p5, ptr %p 84486ed885SArthur Eubanks %p3n5p4 = call float @llvm.amdgcn.cubeid(float +3.0, float -5.0, float +4.0) 85*04b944e2SNikita Popov store volatile float %p3n5p4, ptr %p 86486ed885SArthur Eubanks %p4n3p5 = call float @llvm.amdgcn.cubeid(float +4.0, float -3.0, float +5.0) 87*04b944e2SNikita Popov store volatile float %p4n3p5, ptr %p 88486ed885SArthur Eubanks %p4n5p3 = call float @llvm.amdgcn.cubeid(float +4.0, float -5.0, float +3.0) 89*04b944e2SNikita Popov store volatile float %p4n5p3, ptr %p 90486ed885SArthur Eubanks %p5n3p4 = call float @llvm.amdgcn.cubeid(float +5.0, float -3.0, float +4.0) 91*04b944e2SNikita Popov store volatile float %p5n3p4, ptr %p 92486ed885SArthur Eubanks %p5n4p3 = call float @llvm.amdgcn.cubeid(float +5.0, float -4.0, float +3.0) 93*04b944e2SNikita Popov store volatile float %p5n4p3, ptr %p 94486ed885SArthur Eubanks %p3n4n5 = call float @llvm.amdgcn.cubeid(float +3.0, float -4.0, float -5.0) 95*04b944e2SNikita Popov store volatile float %p3n4n5, ptr %p 96486ed885SArthur Eubanks %p3n5n4 = call float @llvm.amdgcn.cubeid(float +3.0, float -5.0, float -4.0) 97*04b944e2SNikita Popov store volatile float %p3n5n4, ptr %p 98486ed885SArthur Eubanks %p4n3n5 = call float @llvm.amdgcn.cubeid(float +4.0, float -3.0, float -5.0) 99*04b944e2SNikita Popov store volatile float %p4n3n5, ptr %p 100486ed885SArthur Eubanks %p4n5n3 = call float @llvm.amdgcn.cubeid(float +4.0, float -5.0, float -3.0) 101*04b944e2SNikita Popov store volatile float %p4n5n3, ptr %p 102486ed885SArthur Eubanks %p5n3n4 = call float @llvm.amdgcn.cubeid(float +5.0, float -3.0, float -4.0) 103*04b944e2SNikita Popov store volatile float %p5n3n4, ptr %p 104486ed885SArthur Eubanks %p5n4n3 = call float @llvm.amdgcn.cubeid(float +5.0, float -4.0, float -3.0) 105*04b944e2SNikita Popov store volatile float %p5n4n3, ptr %p 106486ed885SArthur Eubanks %n3p4p5 = call float @llvm.amdgcn.cubeid(float -3.0, float +4.0, float +5.0) 107*04b944e2SNikita Popov store volatile float %n3p4p5, ptr %p 108486ed885SArthur Eubanks %n3p5p4 = call float @llvm.amdgcn.cubeid(float -3.0, float +5.0, float +4.0) 109*04b944e2SNikita Popov store volatile float %n3p5p4, ptr %p 110486ed885SArthur Eubanks %n4p3p5 = call float @llvm.amdgcn.cubeid(float -4.0, float +3.0, float +5.0) 111*04b944e2SNikita Popov store volatile float %n4p3p5, ptr %p 112486ed885SArthur Eubanks %n4p5p3 = call float @llvm.amdgcn.cubeid(float -4.0, float +5.0, float +3.0) 113*04b944e2SNikita Popov store volatile float %n4p5p3, ptr %p 114486ed885SArthur Eubanks %n5p3p4 = call float @llvm.amdgcn.cubeid(float -5.0, float +3.0, float +4.0) 115*04b944e2SNikita Popov store volatile float %n5p3p4, ptr %p 116486ed885SArthur Eubanks %n5p4p3 = call float @llvm.amdgcn.cubeid(float -5.0, float +4.0, float +3.0) 117*04b944e2SNikita Popov store volatile float %n5p4p3, ptr %p 118486ed885SArthur Eubanks %n3p4n5 = call float @llvm.amdgcn.cubeid(float -3.0, float +4.0, float -5.0) 119*04b944e2SNikita Popov store volatile float %n3p4n5, ptr %p 120486ed885SArthur Eubanks %n3p5n4 = call float @llvm.amdgcn.cubeid(float -3.0, float +5.0, float -4.0) 121*04b944e2SNikita Popov store volatile float %n3p5n4, ptr %p 122486ed885SArthur Eubanks %n4p3n5 = call float @llvm.amdgcn.cubeid(float -4.0, float +3.0, float -5.0) 123*04b944e2SNikita Popov store volatile float %n4p3n5, ptr %p 124486ed885SArthur Eubanks %n4p5n3 = call float @llvm.amdgcn.cubeid(float -4.0, float +5.0, float -3.0) 125*04b944e2SNikita Popov store volatile float %n4p5n3, ptr %p 126486ed885SArthur Eubanks %n5p3n4 = call float @llvm.amdgcn.cubeid(float -5.0, float +3.0, float -4.0) 127*04b944e2SNikita Popov store volatile float %n5p3n4, ptr %p 128486ed885SArthur Eubanks %n5p4n3 = call float @llvm.amdgcn.cubeid(float -5.0, float +4.0, float -3.0) 129*04b944e2SNikita Popov store volatile float %n5p4n3, ptr %p 130486ed885SArthur Eubanks %n3n4p5 = call float @llvm.amdgcn.cubeid(float -3.0, float -4.0, float +5.0) 131*04b944e2SNikita Popov store volatile float %n3n4p5, ptr %p 132486ed885SArthur Eubanks %n3n5p4 = call float @llvm.amdgcn.cubeid(float -3.0, float -5.0, float +4.0) 133*04b944e2SNikita Popov store volatile float %n3n5p4, ptr %p 134486ed885SArthur Eubanks %n4n3p5 = call float @llvm.amdgcn.cubeid(float -4.0, float -3.0, float +5.0) 135*04b944e2SNikita Popov store volatile float %n4n3p5, ptr %p 136486ed885SArthur Eubanks %n4n5p3 = call float @llvm.amdgcn.cubeid(float -4.0, float -5.0, float +3.0) 137*04b944e2SNikita Popov store volatile float %n4n5p3, ptr %p 138486ed885SArthur Eubanks %n5n3p4 = call float @llvm.amdgcn.cubeid(float -5.0, float -3.0, float +4.0) 139*04b944e2SNikita Popov store volatile float %n5n3p4, ptr %p 140486ed885SArthur Eubanks %n5n4p3 = call float @llvm.amdgcn.cubeid(float -5.0, float -4.0, float +3.0) 141*04b944e2SNikita Popov store volatile float %n5n4p3, ptr %p 142486ed885SArthur Eubanks %n3n4n5 = call float @llvm.amdgcn.cubeid(float -3.0, float -4.0, float -5.0) 143*04b944e2SNikita Popov store volatile float %n3n4n5, ptr %p 144486ed885SArthur Eubanks %n3n5n4 = call float @llvm.amdgcn.cubeid(float -3.0, float -5.0, float -4.0) 145*04b944e2SNikita Popov store volatile float %n3n5n4, ptr %p 146486ed885SArthur Eubanks %n4n3n5 = call float @llvm.amdgcn.cubeid(float -4.0, float -3.0, float -5.0) 147*04b944e2SNikita Popov store volatile float %n4n3n5, ptr %p 148486ed885SArthur Eubanks %n4n5n3 = call float @llvm.amdgcn.cubeid(float -4.0, float -5.0, float -3.0) 149*04b944e2SNikita Popov store volatile float %n4n5n3, ptr %p 150486ed885SArthur Eubanks %n5n3n4 = call float @llvm.amdgcn.cubeid(float -5.0, float -3.0, float -4.0) 151*04b944e2SNikita Popov store volatile float %n5n3n4, ptr %p 152486ed885SArthur Eubanks %n5n4n3 = call float @llvm.amdgcn.cubeid(float -5.0, float -4.0, float -3.0) 153*04b944e2SNikita Popov store volatile float %n5n4n3, ptr %p 154486ed885SArthur Eubanks ret void 155486ed885SArthur Eubanks} 156