(MOVWUreg x:(MOVBUload _ _)) => (MOVVreg x)
(MOVWUreg x:(MOVHUload _ _)) => (MOVVreg x)
(MOVWUreg x:(MOVWUload _ _)) => (MOVVreg x)
+(MOVBreg x:(MOVBloadidx _ _ _)) => (MOVVreg x)
+(MOVBUreg x:(MOVBUloadidx _ _ _)) => (MOVVreg x)
+(MOVHreg x:(MOVBloadidx _ _ _)) => (MOVVreg x)
+(MOVHreg x:(MOVBUloadidx _ _ _)) => (MOVVreg x)
+(MOVHreg x:(MOVHloadidx _ _ _)) => (MOVVreg x)
+(MOVHUreg x:(MOVBUloadidx _ _ _)) => (MOVVreg x)
+(MOVHUreg x:(MOVHUloadidx _ _ _)) => (MOVVreg x)
+(MOVWreg x:(MOVBloadidx _ _ _)) => (MOVVreg x)
+(MOVWreg x:(MOVBUloadidx _ _ _)) => (MOVVreg x)
+(MOVWreg x:(MOVHloadidx _ _ _)) => (MOVVreg x)
+(MOVWreg x:(MOVHUloadidx _ _ _)) => (MOVVreg x)
+(MOVWreg x:(MOVWloadidx _ _ _)) => (MOVVreg x)
+(MOVWUreg x:(MOVBUloadidx _ _ _)) => (MOVVreg x)
+(MOVWUreg x:(MOVHUloadidx _ _ _)) => (MOVVreg x)
+(MOVWUreg x:(MOVWUloadidx _ _ _)) => (MOVVreg x)
// fold double extensions
(MOVBreg x:(MOVBreg _)) => (MOVVreg x)
v.AddArg(x)
return true
}
+ // match: (MOVBUreg x:(MOVBUloadidx _ _ _))
+ // result: (MOVVreg x)
+ for {
+ x := v_0
+ if x.Op != OpLOONG64MOVBUloadidx {
+ break
+ }
+ v.reset(OpLOONG64MOVVreg)
+ v.AddArg(x)
+ return true
+ }
// match: (MOVBUreg x:(MOVBUreg _))
// result: (MOVVreg x)
for {
v.AddArg(x)
return true
}
+ // match: (MOVBreg x:(MOVBloadidx _ _ _))
+ // result: (MOVVreg x)
+ for {
+ x := v_0
+ if x.Op != OpLOONG64MOVBloadidx {
+ break
+ }
+ v.reset(OpLOONG64MOVVreg)
+ v.AddArg(x)
+ return true
+ }
// match: (MOVBreg x:(MOVBreg _))
// result: (MOVVreg x)
for {
v.AddArg(x)
return true
}
+ // match: (MOVHUreg x:(MOVBUloadidx _ _ _))
+ // result: (MOVVreg x)
+ for {
+ x := v_0
+ if x.Op != OpLOONG64MOVBUloadidx {
+ break
+ }
+ v.reset(OpLOONG64MOVVreg)
+ v.AddArg(x)
+ return true
+ }
+ // match: (MOVHUreg x:(MOVHUloadidx _ _ _))
+ // result: (MOVVreg x)
+ for {
+ x := v_0
+ if x.Op != OpLOONG64MOVHUloadidx {
+ break
+ }
+ v.reset(OpLOONG64MOVVreg)
+ v.AddArg(x)
+ return true
+ }
// match: (MOVHUreg x:(MOVBUreg _))
// result: (MOVVreg x)
for {
v.AddArg(x)
return true
}
+ // match: (MOVHreg x:(MOVBloadidx _ _ _))
+ // result: (MOVVreg x)
+ for {
+ x := v_0
+ if x.Op != OpLOONG64MOVBloadidx {
+ break
+ }
+ v.reset(OpLOONG64MOVVreg)
+ v.AddArg(x)
+ return true
+ }
+ // match: (MOVHreg x:(MOVBUloadidx _ _ _))
+ // result: (MOVVreg x)
+ for {
+ x := v_0
+ if x.Op != OpLOONG64MOVBUloadidx {
+ break
+ }
+ v.reset(OpLOONG64MOVVreg)
+ v.AddArg(x)
+ return true
+ }
+ // match: (MOVHreg x:(MOVHloadidx _ _ _))
+ // result: (MOVVreg x)
+ for {
+ x := v_0
+ if x.Op != OpLOONG64MOVHloadidx {
+ break
+ }
+ v.reset(OpLOONG64MOVVreg)
+ v.AddArg(x)
+ return true
+ }
// match: (MOVHreg x:(MOVBreg _))
// result: (MOVVreg x)
for {
v.AddArg(x)
return true
}
+ // match: (MOVWUreg x:(MOVBUloadidx _ _ _))
+ // result: (MOVVreg x)
+ for {
+ x := v_0
+ if x.Op != OpLOONG64MOVBUloadidx {
+ break
+ }
+ v.reset(OpLOONG64MOVVreg)
+ v.AddArg(x)
+ return true
+ }
+ // match: (MOVWUreg x:(MOVHUloadidx _ _ _))
+ // result: (MOVVreg x)
+ for {
+ x := v_0
+ if x.Op != OpLOONG64MOVHUloadidx {
+ break
+ }
+ v.reset(OpLOONG64MOVVreg)
+ v.AddArg(x)
+ return true
+ }
+ // match: (MOVWUreg x:(MOVWUloadidx _ _ _))
+ // result: (MOVVreg x)
+ for {
+ x := v_0
+ if x.Op != OpLOONG64MOVWUloadidx {
+ break
+ }
+ v.reset(OpLOONG64MOVVreg)
+ v.AddArg(x)
+ return true
+ }
// match: (MOVWUreg x:(MOVBUreg _))
// result: (MOVVreg x)
for {
v.AddArg(x)
return true
}
+ // match: (MOVWreg x:(MOVBloadidx _ _ _))
+ // result: (MOVVreg x)
+ for {
+ x := v_0
+ if x.Op != OpLOONG64MOVBloadidx {
+ break
+ }
+ v.reset(OpLOONG64MOVVreg)
+ v.AddArg(x)
+ return true
+ }
+ // match: (MOVWreg x:(MOVBUloadidx _ _ _))
+ // result: (MOVVreg x)
+ for {
+ x := v_0
+ if x.Op != OpLOONG64MOVBUloadidx {
+ break
+ }
+ v.reset(OpLOONG64MOVVreg)
+ v.AddArg(x)
+ return true
+ }
+ // match: (MOVWreg x:(MOVHloadidx _ _ _))
+ // result: (MOVVreg x)
+ for {
+ x := v_0
+ if x.Op != OpLOONG64MOVHloadidx {
+ break
+ }
+ v.reset(OpLOONG64MOVVreg)
+ v.AddArg(x)
+ return true
+ }
+ // match: (MOVWreg x:(MOVHUloadidx _ _ _))
+ // result: (MOVVreg x)
+ for {
+ x := v_0
+ if x.Op != OpLOONG64MOVHUloadidx {
+ break
+ }
+ v.reset(OpLOONG64MOVVreg)
+ v.AddArg(x)
+ return true
+ }
+ // match: (MOVWreg x:(MOVWloadidx _ _ _))
+ // result: (MOVVreg x)
+ for {
+ x := v_0
+ if x.Op != OpLOONG64MOVWloadidx {
+ break
+ }
+ v.reset(OpLOONG64MOVVreg)
+ v.AddArg(x)
+ return true
+ }
// match: (MOVWreg x:(MOVBreg _))
// result: (MOVVreg x)
for {