diff --git a/lib/Target/Sparc/SparcInstrInfo.td b/lib/Target/Sparc/SparcInstrInfo.td index ba878892c5e..dbc3a4573d3 100644 --- a/lib/Target/Sparc/SparcInstrInfo.td +++ b/lib/Target/Sparc/SparcInstrInfo.td @@ -730,6 +730,9 @@ def : Pat<(i32 (extload ADDRri:$src, i8)), (LDUBri ADDRri:$src)>; def : Pat<(i32 (extload ADDRrr:$src, i16)), (LDUHrr ADDRrr:$src)>; def : Pat<(i32 (extload ADDRri:$src, i16)), (LDUHri ADDRri:$src)>; +// zextload bool -> zextload byte +def : Pat<(i32 (zextload ADDRrr:$src, i1)), (LDUBrr ADDRrr:$src)>; + // truncstore bool -> truncstore byte. def : Pat<(truncstore IntRegs:$src, ADDRrr:$addr, i1), (STBrr IntRegs:$src, ADDRrr:$addr)>; diff --git a/lib/Target/SparcV8/SparcV8InstrInfo.td b/lib/Target/SparcV8/SparcV8InstrInfo.td index ba878892c5e..dbc3a4573d3 100644 --- a/lib/Target/SparcV8/SparcV8InstrInfo.td +++ b/lib/Target/SparcV8/SparcV8InstrInfo.td @@ -730,6 +730,9 @@ def : Pat<(i32 (extload ADDRri:$src, i8)), (LDUBri ADDRri:$src)>; def : Pat<(i32 (extload ADDRrr:$src, i16)), (LDUHrr ADDRrr:$src)>; def : Pat<(i32 (extload ADDRri:$src, i16)), (LDUHri ADDRri:$src)>; +// zextload bool -> zextload byte +def : Pat<(i32 (zextload ADDRrr:$src, i1)), (LDUBrr ADDRrr:$src)>; + // truncstore bool -> truncstore byte. def : Pat<(truncstore IntRegs:$src, ADDRrr:$addr, i1), (STBrr IntRegs:$src, ADDRrr:$addr)>;