diff --git a/llvm/lib/Target/VE/VEInstrInfo.td b/llvm/lib/Target/VE/VEInstrInfo.td --- a/llvm/lib/Target/VE/VEInstrInfo.td +++ b/llvm/lib/Target/VE/VEInstrInfo.td @@ -1161,7 +1161,7 @@ // floating point def : Pat<(f32 fpimm:$val), - (COPY_TO_REGCLASS (LEASLzii 0, 0, (LOFP32 $val)), F32)>; + (EXTRACT_SUBREG (LEASLzii 0, 0, (LOFP32 $val)), sub_f32)>; def : Pat<(f64 fplozero:$val), (LEASLzii 0, 0, (HIFP32 $val))>; def : Pat<(f64 fplomsbzero:$val), diff --git a/llvm/test/CodeGen/VE/call.ll b/llvm/test/CodeGen/VE/call.ll --- a/llvm/test/CodeGen/VE/call.ll +++ b/llvm/test/CodeGen/VE/call.ll @@ -72,27 +72,27 @@ ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea %s0, 1092616192 ; CHECK-NEXT: stl %s0, 252(, %s11) -; CHECK-NEXT: lea %s0, 1091567616 -; CHECK-NEXT: lea %s1, stack_callee_float@lo -; CHECK-NEXT: and %s1, %s1, (32)0 -; CHECK-NEXT: lea.sl %s12, stack_callee_float@hi(, %s1) -; CHECK-NEXT: lea.sl %s1, 1065353216 -; CHECK-NEXT: lea.sl %s2, 1073741824 -; CHECK-NEXT: lea.sl %s3, 1077936128 -; CHECK-NEXT: lea.sl %s4, 1082130432 -; CHECK-NEXT: lea.sl %s5, 1084227584 -; CHECK-NEXT: lea.sl %s6, 1086324736 -; CHECK-NEXT: lea.sl %s7, 1088421888 -; CHECK-NEXT: lea.sl %s34, 1090519040 -; CHECK-NEXT: stl %s0, 244(, %s11) -; CHECK-NEXT: or %s0, 0, %s1 -; CHECK-NEXT: or %s1, 0, %s2 -; CHECK-NEXT: or %s2, 0, %s3 -; CHECK-NEXT: or %s3, 0, %s4 -; CHECK-NEXT: or %s4, 0, %s5 -; CHECK-NEXT: or %s5, 0, %s6 -; CHECK-NEXT: or %s6, 0, %s7 -; CHECK-NEXT: or %s7, 0, %s34 +; CHECK-NEXT: lea %s34, 1091567616 +; CHECK-NEXT: lea %s0, stack_callee_float@lo +; CHECK-NEXT: and %s0, %s0, (32)0 +; CHECK-NEXT: lea.sl %s12, stack_callee_float@hi(, %s0) +; CHECK-NEXT: lea.sl %s0, 1065353216 +; CHECK-NEXT: lea.sl %s1, 1073741824 +; CHECK-NEXT: lea.sl %s2, 1077936128 +; CHECK-NEXT: lea.sl %s3, 1082130432 +; CHECK-NEXT: lea.sl %s4, 1084227584 +; CHECK-NEXT: lea.sl %s5, 1086324736 +; CHECK-NEXT: lea.sl %s6, 1088421888 +; CHECK-NEXT: lea.sl %s7, 1090519040 +; CHECK-NEXT: stl %s34, 244(, %s11) +; CHECK-NEXT: # kill: def $sf0 killed $sf0 killed $sx0 +; CHECK-NEXT: # kill: def $sf1 killed $sf1 killed $sx1 +; CHECK-NEXT: # kill: def $sf2 killed $sf2 killed $sx2 +; CHECK-NEXT: # kill: def $sf3 killed $sf3 killed $sx3 +; CHECK-NEXT: # kill: def $sf4 killed $sf4 killed $sx4 +; CHECK-NEXT: # kill: def $sf5 killed $sf5 killed $sx5 +; CHECK-NEXT: # kill: def $sf6 killed $sf6 killed $sx6 +; CHECK-NEXT: # kill: def $sf7 killed $sf7 killed $sx7 ; CHECK-NEXT: bsic %s10, (, %s12) ; CHECK-NEXT: or %s11, 0, %s9 %r = tail call float @stack_callee_float(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, float 6.0, float 7.0, float 8.0, float 9.0, float 10.0) diff --git a/llvm/test/CodeGen/VE/cast.ll b/llvm/test/CodeGen/VE/cast.ll --- a/llvm/test/CodeGen/VE/cast.ll +++ b/llvm/test/CodeGen/VE/cast.ll @@ -199,7 +199,6 @@ ; CHECK-LABEL: f2ull: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 1593835520 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fcmp.s %s2, %s0, %s1 ; CHECK-NEXT: fsub.s %s1, %s0, %s1 ; CHECK-NEXT: cvt.d.s %s1, %s1 diff --git a/llvm/test/CodeGen/VE/constants.ll b/llvm/test/CodeGen/VE/constants.ll --- a/llvm/test/CodeGen/VE/constants.ll +++ b/llvm/test/CodeGen/VE/constants.ll @@ -304,7 +304,7 @@ ; CHECK-LABEL: m5f32: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s0, -1063256064 -; CHECK-NEXT: or %s0, 0, %s0 +; CHECK-NEXT: # kill: def $sf0 killed $sf0 killed $sx0 ; CHECK-NEXT: or %s11, 0, %s9 ret float -5.000000e+00 } @@ -321,7 +321,7 @@ ; CHECK-LABEL: p2p3f32: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s0, 1075000115 -; CHECK-NEXT: or %s0, 0, %s0 +; CHECK-NEXT: # kill: def $sf0 killed $sf0 killed $sx0 ; CHECK-NEXT: or %s11, 0, %s9 ret float 0x4002666660000000 ; 2.3 } @@ -339,7 +339,7 @@ ; CHECK-LABEL: p128p3f32: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s0, 1124093133 -; CHECK-NEXT: or %s0, 0, %s0 +; CHECK-NEXT: # kill: def $sf0 killed $sf0 killed $sx0 ; CHECK-NEXT: or %s11, 0, %s9 ret float 0x40600999A0000000 ; 128.3 } diff --git a/llvm/test/CodeGen/VE/fp_add.ll b/llvm/test/CodeGen/VE/fp_add.ll --- a/llvm/test/CodeGen/VE/fp_add.ll +++ b/llvm/test/CodeGen/VE/fp_add.ll @@ -22,7 +22,6 @@ ; CHECK-LABEL: func4: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 1084227584 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fadd.s %s0, %s0, %s1 ; CHECK-NEXT: or %s11, 0, %s9 %r = fadd float %a, 5.000000e+00 @@ -43,7 +42,6 @@ ; CHECK-LABEL: func7: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 2139095039 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fadd.s %s0, %s0, %s1 ; CHECK-NEXT: or %s11, 0, %s9 %r = fadd float %a, 0x47EFFFFFE0000000 diff --git a/llvm/test/CodeGen/VE/fp_div.ll b/llvm/test/CodeGen/VE/fp_div.ll --- a/llvm/test/CodeGen/VE/fp_div.ll +++ b/llvm/test/CodeGen/VE/fp_div.ll @@ -22,7 +22,6 @@ ; CHECK-LABEL: func4: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 1084227584 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fdiv.s %s0, %s0, %s1 ; CHECK-NEXT: or %s11, 0, %s9 %r = fdiv float %a, 5.000000e+00 @@ -43,7 +42,6 @@ ; CHECK-LABEL: func7: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 2139095039 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fdiv.s %s0, %s0, %s1 ; CHECK-NEXT: or %s11, 0, %s9 %r = fdiv float %a, 0x47EFFFFFE0000000 diff --git a/llvm/test/CodeGen/VE/fp_mul.ll b/llvm/test/CodeGen/VE/fp_mul.ll --- a/llvm/test/CodeGen/VE/fp_mul.ll +++ b/llvm/test/CodeGen/VE/fp_mul.ll @@ -22,7 +22,6 @@ ; CHECK-LABEL: func4: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 1084227584 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fmul.s %s0, %s0, %s1 ; CHECK-NEXT: or %s11, 0, %s9 %r = fmul float %a, 5.000000e+00 @@ -43,7 +42,6 @@ ; CHECK-LABEL: func7: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 2139095039 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fmul.s %s0, %s0, %s1 ; CHECK-NEXT: or %s11, 0, %s9 %r = fmul float %a, 0x47EFFFFFE0000000 diff --git a/llvm/test/CodeGen/VE/fp_sub.ll b/llvm/test/CodeGen/VE/fp_sub.ll --- a/llvm/test/CodeGen/VE/fp_sub.ll +++ b/llvm/test/CodeGen/VE/fp_sub.ll @@ -22,7 +22,6 @@ ; CHECK-LABEL: func4: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, -1063256064 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fadd.s %s0, %s0, %s1 ; CHECK-NEXT: or %s11, 0, %s9 %r = fadd float %a, -5.000000e+00 @@ -43,7 +42,6 @@ ; CHECK-LABEL: func7: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, -8388609 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fadd.s %s0, %s0, %s1 ; CHECK-NEXT: or %s11, 0, %s9 %r = fadd float %a, 0xC7EFFFFFE0000000 diff --git a/llvm/test/CodeGen/VE/fp_to_int.ll b/llvm/test/CodeGen/VE/fp_to_int.ll --- a/llvm/test/CodeGen/VE/fp_to_int.ll +++ b/llvm/test/CodeGen/VE/fp_to_int.ll @@ -85,7 +85,6 @@ ; CHECK-LABEL: f2ul: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 1593835520 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fcmp.s %s2, %s0, %s1 ; CHECK-NEXT: fsub.s %s1, %s0, %s1 ; CHECK-NEXT: cvt.d.s %s1, %s1 diff --git a/llvm/test/CodeGen/VE/selectccf32i.ll b/llvm/test/CodeGen/VE/selectccf32i.ll --- a/llvm/test/CodeGen/VE/selectccf32i.ll +++ b/llvm/test/CodeGen/VE/selectccf32i.ll @@ -23,10 +23,9 @@ define float @selectccoeq(float, float, float, float) { ; CHECK-LABEL: selectccoeq: ; CHECK: .LBB{{[0-9]+}}_2: -; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: # kill: def $sf3 killed $sf3 def $sx3 ; CHECK-NEXT: # kill: def $sf2 killed $sf2 def $sx2 -; CHECK-NEXT: or %s1, 0, %s1 +; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: fcmp.s %s0, %s0, %s1 ; CHECK-NEXT: cmov.s.eq %s3, %s2, %s0 ; CHECK-NEXT: or %s0, 0, %s3 @@ -39,10 +38,9 @@ define float @selectccone(float, float, float, float) { ; CHECK-LABEL: selectccone: ; CHECK: .LBB{{[0-9]+}}_2: -; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: # kill: def $sf3 killed $sf3 def $sx3 ; CHECK-NEXT: # kill: def $sf2 killed $sf2 def $sx2 -; CHECK-NEXT: or %s1, 0, %s1 +; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: fcmp.s %s0, %s0, %s1 ; CHECK-NEXT: cmov.s.ne %s3, %s2, %s0 ; CHECK-NEXT: or %s0, 0, %s3 @@ -55,10 +53,9 @@ define float @selectccogt(float, float, float, float) { ; CHECK-LABEL: selectccogt: ; CHECK: .LBB{{[0-9]+}}_2: -; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: # kill: def $sf3 killed $sf3 def $sx3 ; CHECK-NEXT: # kill: def $sf2 killed $sf2 def $sx2 -; CHECK-NEXT: or %s1, 0, %s1 +; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: fcmp.s %s0, %s0, %s1 ; CHECK-NEXT: cmov.s.gt %s3, %s2, %s0 ; CHECK-NEXT: or %s0, 0, %s3 @@ -71,10 +68,9 @@ define float @selectccoge(float, float, float, float) { ; CHECK-LABEL: selectccoge: ; CHECK: .LBB{{[0-9]+}}_2: -; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: # kill: def $sf3 killed $sf3 def $sx3 ; CHECK-NEXT: # kill: def $sf2 killed $sf2 def $sx2 -; CHECK-NEXT: or %s1, 0, %s1 +; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: fcmp.s %s0, %s0, %s1 ; CHECK-NEXT: cmov.s.ge %s3, %s2, %s0 ; CHECK-NEXT: or %s0, 0, %s3 @@ -87,10 +83,9 @@ define float @selectccolt(float, float, float, float) { ; CHECK-LABEL: selectccolt: ; CHECK: .LBB{{[0-9]+}}_2: -; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: # kill: def $sf3 killed $sf3 def $sx3 ; CHECK-NEXT: # kill: def $sf2 killed $sf2 def $sx2 -; CHECK-NEXT: or %s1, 0, %s1 +; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: fcmp.s %s0, %s0, %s1 ; CHECK-NEXT: cmov.s.lt %s3, %s2, %s0 ; CHECK-NEXT: or %s0, 0, %s3 @@ -103,10 +98,9 @@ define float @selectccole(float, float, float, float) { ; CHECK-LABEL: selectccole: ; CHECK: .LBB{{[0-9]+}}_2: -; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: # kill: def $sf3 killed $sf3 def $sx3 ; CHECK-NEXT: # kill: def $sf2 killed $sf2 def $sx2 -; CHECK-NEXT: or %s1, 0, %s1 +; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: fcmp.s %s0, %s0, %s1 ; CHECK-NEXT: cmov.s.le %s3, %s2, %s0 ; CHECK-NEXT: or %s0, 0, %s3 @@ -147,10 +141,9 @@ define float @selectccueq(float, float, float, float) { ; CHECK-LABEL: selectccueq: ; CHECK: .LBB{{[0-9]+}}_2: -; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: # kill: def $sf3 killed $sf3 def $sx3 ; CHECK-NEXT: # kill: def $sf2 killed $sf2 def $sx2 -; CHECK-NEXT: or %s1, 0, %s1 +; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: fcmp.s %s0, %s0, %s1 ; CHECK-NEXT: cmov.s.eqnan %s3, %s2, %s0 ; CHECK-NEXT: or %s0, 0, %s3 @@ -163,10 +156,9 @@ define float @selectccune(float, float, float, float) { ; CHECK-LABEL: selectccune: ; CHECK: .LBB{{[0-9]+}}_2: -; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: # kill: def $sf3 killed $sf3 def $sx3 ; CHECK-NEXT: # kill: def $sf2 killed $sf2 def $sx2 -; CHECK-NEXT: or %s1, 0, %s1 +; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: fcmp.s %s0, %s0, %s1 ; CHECK-NEXT: cmov.s.nenan %s3, %s2, %s0 ; CHECK-NEXT: or %s0, 0, %s3 @@ -179,10 +171,9 @@ define float @selectccugt(float, float, float, float) { ; CHECK-LABEL: selectccugt: ; CHECK: .LBB{{[0-9]+}}_2: -; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: # kill: def $sf3 killed $sf3 def $sx3 ; CHECK-NEXT: # kill: def $sf2 killed $sf2 def $sx2 -; CHECK-NEXT: or %s1, 0, %s1 +; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: fcmp.s %s0, %s0, %s1 ; CHECK-NEXT: cmov.s.gtnan %s3, %s2, %s0 ; CHECK-NEXT: or %s0, 0, %s3 @@ -195,10 +186,9 @@ define float @selectccuge(float, float, float, float) { ; CHECK-LABEL: selectccuge: ; CHECK: .LBB{{[0-9]+}}_2: -; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: # kill: def $sf3 killed $sf3 def $sx3 ; CHECK-NEXT: # kill: def $sf2 killed $sf2 def $sx2 -; CHECK-NEXT: or %s1, 0, %s1 +; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: fcmp.s %s0, %s0, %s1 ; CHECK-NEXT: cmov.s.genan %s3, %s2, %s0 ; CHECK-NEXT: or %s0, 0, %s3 @@ -211,10 +201,9 @@ define float @selectccult(float, float, float, float) { ; CHECK-LABEL: selectccult: ; CHECK: .LBB{{[0-9]+}}_2: -; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: # kill: def $sf3 killed $sf3 def $sx3 ; CHECK-NEXT: # kill: def $sf2 killed $sf2 def $sx2 -; CHECK-NEXT: or %s1, 0, %s1 +; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: fcmp.s %s0, %s0, %s1 ; CHECK-NEXT: cmov.s.ltnan %s3, %s2, %s0 ; CHECK-NEXT: or %s0, 0, %s3 @@ -227,10 +216,9 @@ define float @selectccule(float, float, float, float) { ; CHECK-LABEL: selectccule: ; CHECK: .LBB{{[0-9]+}}_2: -; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: # kill: def $sf3 killed $sf3 def $sx3 ; CHECK-NEXT: # kill: def $sf2 killed $sf2 def $sx2 -; CHECK-NEXT: or %s1, 0, %s1 +; CHECK-NEXT: lea.sl %s1, 0 ; CHECK-NEXT: fcmp.s %s0, %s0, %s1 ; CHECK-NEXT: cmov.s.lenan %s3, %s2, %s0 ; CHECK-NEXT: or %s0, 0, %s3 diff --git a/llvm/test/CodeGen/VE/setccf32i.ll b/llvm/test/CodeGen/VE/setccf32i.ll --- a/llvm/test/CodeGen/VE/setccf32i.ll +++ b/llvm/test/CodeGen/VE/setccf32i.ll @@ -22,7 +22,6 @@ ; CHECK-LABEL: setccoeq: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 0 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fcmp.s %s1, %s0, %s1 ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: cmov.s.eq %s0, (63)0, %s1 @@ -36,7 +35,6 @@ ; CHECK-LABEL: setccone: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 0 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fcmp.s %s1, %s0, %s1 ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: cmov.s.ne %s0, (63)0, %s1 @@ -50,7 +48,6 @@ ; CHECK-LABEL: setccogt: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 0 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fcmp.s %s1, %s0, %s1 ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: cmov.s.gt %s0, (63)0, %s1 @@ -64,7 +61,6 @@ ; CHECK-LABEL: setccoge: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 0 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fcmp.s %s1, %s0, %s1 ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: cmov.s.ge %s0, (63)0, %s1 @@ -78,7 +74,6 @@ ; CHECK-LABEL: setccolt: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 0 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fcmp.s %s1, %s0, %s1 ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: cmov.s.lt %s0, (63)0, %s1 @@ -92,7 +87,6 @@ ; CHECK-LABEL: setccole: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 0 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fcmp.s %s1, %s0, %s1 ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: cmov.s.le %s0, (63)0, %s1 @@ -130,7 +124,6 @@ ; CHECK-LABEL: setccueq: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 0 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fcmp.s %s1, %s0, %s1 ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: cmov.s.eqnan %s0, (63)0, %s1 @@ -144,7 +137,6 @@ ; CHECK-LABEL: setccune: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 0 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fcmp.s %s1, %s0, %s1 ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: cmov.s.nenan %s0, (63)0, %s1 @@ -158,7 +150,6 @@ ; CHECK-LABEL: setccugt: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 0 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fcmp.s %s1, %s0, %s1 ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: cmov.s.gtnan %s0, (63)0, %s1 @@ -172,7 +163,6 @@ ; CHECK-LABEL: setccuge: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 0 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fcmp.s %s1, %s0, %s1 ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: cmov.s.genan %s0, (63)0, %s1 @@ -186,7 +176,6 @@ ; CHECK-LABEL: setccult: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 0 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fcmp.s %s1, %s0, %s1 ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: cmov.s.ltnan %s0, (63)0, %s1 @@ -200,7 +189,6 @@ ; CHECK-LABEL: setccule: ; CHECK: .LBB{{[0-9]+}}_2: ; CHECK-NEXT: lea.sl %s1, 0 -; CHECK-NEXT: or %s1, 0, %s1 ; CHECK-NEXT: fcmp.s %s1, %s0, %s1 ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: cmov.s.lenan %s0, (63)0, %s1 diff --git a/llvm/test/CodeGen/VE/va_caller.ll b/llvm/test/CodeGen/VE/va_caller.ll --- a/llvm/test/CodeGen/VE/va_caller.ll +++ b/llvm/test/CodeGen/VE/va_caller.ll @@ -34,10 +34,10 @@ ; CHECK-NEXT: lea %s0, func@lo ; CHECK-NEXT: and %s0, %s0, (32)0 ; CHECK-NEXT: lea.sl %s12, func@hi(, %s0) -; CHECK-NEXT: lea.sl %s0, 1086324736 +; CHECK-NEXT: lea.sl %s6, 1086324736 ; CHECK-NEXT: stl %s18, 176(, %s11) -; CHECK-NEXT: or %s6, 0, %s0 ; CHECK-NEXT: or %s0, 0, %s18 +; CHECK-NEXT: # kill: def $sf6 killed $sf6 killed $sx6 ; CHECK-NEXT: bsic %s10, (, %s12) ; CHECK-NEXT: or %s0, 0, %s18 ; CHECK-NEXT: ld %s18, 48(, %s9) # 8-byte Folded Reload