<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>196328</bug_id>
          
          <creation_ts>2019-03-27 16:53:07 -0700</creation_ts>
          <short_desc>B3ReduceStrength should mask large constants used in a shift</short_desc>
          <delta_ts>2019-03-28 12:46:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>196361</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1521919</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-27 16:53:07 -0700</bug_when>
    <thetext>The semantics of all shifts in B3 include a mask with either 31 or 63.
So if we do a shift by a constant greater than that, we should do the mask directly on the constant.
This would provide some useful canonicalization, reduce the need to materialize large constants, and could outright delete the shift if after the mask the constant is 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521923</commentid>
    <comment_count>1</comment_count>
      <attachid>366129</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-27 16:58:36 -0700</bug_when>
    <thetext>Created attachment 366129
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366129</attachid>
            <date>2019-03-27 16:58:36 -0700</date>
            <delta_ts>2019-03-27 16:58:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch196328</filename>
            <type>text/plain</type>
            <size>2378</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDU4MGQyMzhmZjVlLi40MGI5YzI0MjRiMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDMtMjcgIFJvYmlu
IE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KKworICAgICAgICBCM1JlZHVjZVN0cmVu
Z3RoIHNob3VsZCBtYXNrIGxhcmdlIGNvbnN0YW50cyB1c2VkIGluIGEgc2hpZnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjMyOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhZGRl
ZCwgYXMgdGhlcmUgYXJlIGFscmVhZHkgYSBidW5jaCBvZiByZWxldmFudCB0ZXN0cyBpbiB0ZXN0
YjMuCisgICAgICAgIEUuZy4gdGVzdFNobEFyZ0ltbSwgdGVzdFNobFNTaHJBcmdJbW0sIHRlc3RT
aGxBcmdJbW0zMiwgdGVzdFNobFpTaHJBcmdJbW0zMiwgZXRjLi4KKyAgICAgICAgKiBiMy9CM1Jl
ZHVjZVN0cmVuZ3RoLmNwcDoKKwogMjAxOS0wMy0yNSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcu
a2ltQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIE5hdmlnYXRvckNvbnRlbnRVdGlscyBp
biBXZWJDb3JlL01vZHVsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1JlZHVjZVN0cmVuZ3RoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0
cmVuZ3RoLmNwcAppbmRleCAwZGIzZWFkODA0OC4uZDE2NTQ5MjM1MDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAKQEAgLTI0NzYsMTcgKzI0NzYs
MjQgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaGFuZGxlU2hpZnRBbW91bnQoKQogICAgIHsKLSAg
ICAgICAgLy8gU2hpZnQgYW55dGhpbmcgYnkgemVybyBpcyBpZGVudGl0eS4KLSAgICAgICAgaWYg
KG1fdmFsdWUtPmNoaWxkKDEpLT5pc0ludDMyKDApKSB7Ci0gICAgICAgICAgICByZXBsYWNlV2l0
aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDApKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgaW50MzJfdCBtYXNrID0gc2l6ZW9mVHlwZShtX3ZhbHVlLT50eXBlKCkpICogOCAtIDE7Cisg
ICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgxKS0+aGFzSW50MzIoKSkgeworICAgICAgICAgICAg
Ly8gV2UgbWFzayBhbnkgc2hpZnQgdGhhdCB3b3VsZCBvdmVyZmxvdworICAgICAgICAgICAgaWYg
KG1fdmFsdWUtPmNoaWxkKDEpLT5hc0ludDMyKCkgPiBtYXNrKSB7CisgICAgICAgICAgICAgICAg
VmFsdWUqIG5ld0NvbnN0YW50ID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0PENvbnN0MzJWYWx1ZT4o
bV9pbmRleCwgbV92YWx1ZS0+Y2hpbGQoMSktPm9yaWdpbigpLCBtX3ZhbHVlLT5jaGlsZCgxKS0+
YXNJbnQzMigpICYgbWFzayk7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMSkgPSBu
ZXdDb25zdGFudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFNoaWZ0IGFueXRoaW5n
IGJ5IHplcm8gaXMgaWRlbnRpdHkuCisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMSkt
PmlzSW50MzIoMCkpIHsKKyAgICAgICAgICAgICAgICByZXBsYWNlV2l0aElkZW50aXR5KG1fdmFs
dWUtPmNoaWxkKDApKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KIAogICAgICAgICAvLyBUaGUgc2hpZnQgYWxyZWFkeSBtYXNrcyBpdHMgc2hpZnQg
YW1vdW50LiBJZiB0aGUgc2hpZnQgYW1vdW50IGlzIGJlaW5nIG1hc2tlZCBieSBhCiAgICAgICAg
IC8vIHJlZHVuZGFudCBhbW91bnQsIHRoZW4gcmVtb3ZlIHRoZSBtYXNrLiBGb3IgZXhhbXBsZSwK
ICAgICAgICAgLy8gVHVybiB0aGlzOiBTaGwoQHgsIEJpdEFuZChAeSwgNjMpKQogICAgICAgICAv
LyBJbnRvIHRoaXM6IFNobChAeCwgQHkpCi0gICAgICAgIHVuc2lnbmVkIG1hc2sgPSBzaXplb2ZU
eXBlKG1fdmFsdWUtPnR5cGUoKSkgKiA4IC0gMTsKICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxk
KDEpLT5vcGNvZGUoKSA9PSBCaXRBbmQKICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDEp
LT5jaGlsZCgxKS0+aGFzSW50MzIoKQogICAgICAgICAgICAgJiYgKG1fdmFsdWUtPmNoaWxkKDEp
LT5jaGlsZCgxKS0+YXNJbnQzMigpICYgbWFzaykgPT0gbWFzaykgewo=
</data>
<flag name="review"
          id="382551"
          type_id="1"
          status="?"
          setter="rmorisset"
    />
          </attachment>
      

    </bug>

</bugzilla>